今天在测试mongo数据库操作维护的时候,测试了一下直接在表内添加操作列来完成数据的删除操作,直接返回数据库ID,页面表格如下:

通过点击删除,即可完成对应条目数据库删除操作。

1、mongo数据操作<db1.js>

function delStudentid(id,callback){
    MongoClient.connect(url, {useNewUrlParser: true}, function(err, client) {
        if(err) {
            console.log("连接数据库失败,请mongod开机");
            return;
        }
        // Use the admin database for the operation
        const db = client.db(dbName);
        console.log("数据库连接成功");
        console.log(id);
        db.collection("banji").deleteOne(({_id:new ObjectID(id)}),(err,r) => {
            if(err) {
                console.log("删除失败");
                callback("-1");
                return;
            }
            callback("3")
        })
    })
}

2 html网页标记<student.html>

    <table>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>籍贯</th>
            <th>操作</th>
        </tr>
        <%
            arr.forEach((item,index) => {
        %>
            <tr>
                <td><%= item._id %></td>
                <td><%= item.uname %></td>
                <td><%= item.age %></td>
                <td><%= item.sex %></td>
                <td><%= item.provice %></td>
                <td><a href='delid?id=<%=item._id%>'>删除</td>
            </tr>
            <%
            })
        %>
    </table>
或者利用script返回标记
    <script>
        $.get("/allstudent",(data) => {
            var str = '';
            data.results.forEach((item) => {
                str += `<tr><td>${item._id}</td><td>${item.uname}</td><td>${item.age}</td><td>${item.sex}</td><td>${item.provice}</td><td><a href="delid?id=${item._id}">删除</td></th>`
            })
            $('#biaoge2').append(str);
        })
    </script>

3 路由操作<mainctrl.js>

 exports.dodelid = (req,res) => {
    var arg=url.parse(req.url).query;
    var id=qs.parse(arg)['id'];
    console.log(id);
    db.delStudentid(id,(info) => {
            res.end(info)
        })
   
}

4 APP配置<app.js>

app.get("/delid",mainctrl.dodelid)
 
软件测试在网页上点<a>删除链接,发送处理/delid和需删除的业务ID,APP接收到请求后转给路由控制单元,匹配到对应的处理模块,分析出参数ID并转给MODULe模块的数据处理单元进行相应的删除操作,测试完成。
成功实现了mongo数据库利用ID直接删除操作。

nodejs <a>带参数返回路由标记执行数据库操作的更多相关文章

  1. ui-router带参数的路由配置

    ui-router带参数的路由配置 使用ng-route的时候带参数的连接这样配置: $routeProvider.when('item/itemid/:itemid', { templateUrl: ...

  2. Xamarin.Android带参数返回上一级界面

    在ActivityA跳转到ActivityB后.activityB返回到ActivityA并带参数返回 首先再activitya中跳转到b var intent = new Intent(this, ...

  3. Spring学习总结(16)——Spring AOP实现执行数据库操作前根据业务来动态切换数据源

    深刻讨论为什么要读写分离? 为了服务器承载更多的用户?提升了网站的响应速度?分摊数据库服务器的压力?就是为了双机热备又不想浪费备份服务器?上面这些回答,我认为都不是错误的,但也都不是完全正确的.「读写 ...

  4. Docker for Windows(五)实践搭建SqlServer服务&执行数据库操作

    上一篇我们已经搭建了一个mysql数据库服务了:Docker for Windows(四)实践搭建&删除MySQL服务,发现用Docker确实是方便且容易,但上一篇主要是服务的搭建删除等基础操 ...

  5. httpclient post请求带参数返回数据乱码问题解决

    客户端代码: //带参数的post请求 @Test public void doPostWithParam() throws Exception { CloseableHttpClient httpC ...

  6. django 路由系统,数据库操作

    一.修改配置 数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': ...

  7. mysql在cmd命令下执行数据库操作

    windows+r 运行cmd命令,执行以下操作! 当mysql 数据库文件相对于来说比较大的时候,这个时候你可能在正常环境下的mysql中是导入不进去的,因为mysql数据库本身就有默认的导入文件大 ...

  8. ajaxFileUpload上传带参数,返回值改成json格式

    /*直接复制在自己的js文件中就能使用*/ jQuery.extend({ createUploadIframe: function (id, uri) { //create frame var fr ...

  9. ionic3带参数返回原来页面

    最近用ionic3+angular4做项目.我遇到了个问题,我返回原来页面时一般都会调用this.navCtrl.pop()方法,但这个方法不能携带参数.怎么办? 可以写个回调方法. 我在a页面定义个 ...

  10. android布局不带参数返回

    package com.example.lesson3_4; import java.util.ArrayList; import java.util.List; import android.app ...

随机推荐

  1. 【Windows】Windows11 安卓子系统安装方法与使用技巧

    安卓子系统 (Windows Subsystem For Android, WSA) 可以说是 Windows11 的最强功能,能在 Windows 系统中体验各种安卓应用.但是有些电脑可能不符合硬件 ...

  2. 本地JAR包如何上传私有仓库

    需求背景 有些第三方的jar包需要手动上传到maven私有仓库,以便通过maven来管理依赖. 为简化手动上传的jar包的操作步骤,所以整了个脚本,在使用时只需修改相应变量即可. 脚本示例 #!/bi ...

  3. Spark On Hive

    配置 MySQL 通过官网下载并解压: tar -zxvf mysql-8.0.31-el7-x86_64.tar.gz -C /usr/local 重命名: mv mysql-8.0.28-el7- ...

  4. VS2017创建Linux项目实现远程GDB调试

    vs2017新增linux for C++的模块,尝试安装了一下环境. 首先,安装VS2017,安装时注意选择以下模块: 安装完成后,需要配置Linux服务端的部分,我的配置过程如下: 第一步,安装V ...

  5. webstrom配置ES6 file watch没有生效

    参考了文章https://www.cnblogs.com/kiimi/p/8663467.html设置后,依然没有看到编译后的文件,然后设置了输出文件夹为当前项目,再重启webstrom就看到了--

  6. 高精度计算_vector

    #include<bits/stdc++.h> using namespace std; // return a+b; vector<int> add(vector<in ...

  7. Vue基础 · 组件的使用(4)

    组件 将公用的功能抽离出来,形成组件:目的:复用代码. 1.1 全局组件 <div id="app"> <!--引用组件,可多次引用--> <demo ...

  8. springboot+vue本地部署

    springboot+vue本地部署 最近完成项目,需要部署到本地,期间遇到了一些问题,最后写下流程以作记录. springboot打包 这块的内容较为简单一般为在pom.xml中加入 <bui ...

  9. Web实时通信之SignalR

    前言 对于B/S模式的项目,基础的场景都是客户端发起请求,服务端返回响应结果就结束了一次连接:但在很多实际应用场景中,这种简单的请求和响应模式就显得很吃力,比如消息通知.监控看板信息自动刷新等实时通信 ...

  10. php相关知识总结

    class Father{ public static function getStatic(){ return new static(); } public static function getS ...