今天在测试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. wpf TreeView 数据绑定

    <Window x:Class="TsyCreateProjectContent.Window1" xmlns="http://schemas.microsoft. ...

  2. linux源码-概览

    BootloaderWin    Bios Linux UbootAndroid fastboot linux源码宏观结构boot:启动linux时要用到的引导代码 bootsect.s 磁盘引导文件 ...

  3. 前后端API交互数据加密——AES与RSA混合加密完整实例(转载)

    前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...

  4. ubuntu20.04系统openjdk11变更openjdk-8-jdk

    ubuntu20.04系统openjdk11变更openjdk-8-jdk一.卸载openjdk11先检查是否安装,命令:dpkg --list | grep -i jdk移除openjdk包,命令: ...

  5. 打卡node day02--url qs 内置模块

    node 内置模块 url [官网链接:http://nodejs.cn/api/url.html] 1.url.parse() 2.url.format() 内置模块Query String 查询字 ...

  6. 类Class

    C# 类(Class) 当你定义一个类时,你定义了一个数据类型的蓝图.这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作.对象是类的实 ...

  7. C#连接数据库实现开发图书管理系统操作代码

    //客户端登录界面(Form1.cs窗口体系) using System; using System.Collections.Generic; using System.ComponentModel; ...

  8. 某个灰产远程调用的script源码

    访问一个老域名,可能是释放了被所灰产的的注册了,跳转简单扒下他们的源码. 主要是三段script代码,第一段是百度自动推送代码,第二段是站长统计代码,第三段则是远程调用断码. <html xml ...

  9. Linux:服务器(CentOS)搭建FTP服务

    Vsftpd(very secure FTP deamon)是众多Linux发行版中默认的FTP服务器.本文以CentOS 8(腾讯云)服务器为例,使用vsftpd搭建Linux云服务器的FTP服务器 ...

  10. 055_Lightning Lightning 组件基础知识

    Lightning框架简介 Lightning框架是Salesforce提供的一套基于用户界面的开发框架,对于开发单页面应用(Single Page Application)有很大的帮助.它和Visu ...