10.node+express+mongodb 修改

本文介绍了一个简单的Node.js应用,该应用利用EJS模板和MongoDB数据库实现员工信息的展示与修改功能。文章详细展示了如何通过EJS模板显示数据、使用jQuery进行表单提交以及如何在后端通过Express框架与MongoDB交互来完成数据的更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先创建修改的页面 ,也就是ejs模板

新建views 文件夹, 创建edit.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--<script src="../public/lib/jquery.min.js" ></script>-->
    <!--因为server.js中, 已经把public声明为全局文件夹,所以直接按下面写就可以了。否则报错,找不到jQuery文件-->
    <script src="lib/jquery.min.js" ></script>
</head>
<body>
<form>
    <input type="text" name="workerid" value="<%=_id%>">
    姓名:<input type="text" name="name" value="<%=name%>">
年龄:<input type="text" name="age" value="<%=age%>">
密码:<input type="text" name="pwd" value="<%=pwd%>">
<input type="button" id="btn" value="确定修改" >
</form>
<script>
    $("#btn").click(function(){
        $.ajax({
            url:"/editworker",
            type:"post",
            data:$("form").serialize(),
            success:function(data){
                if(data=="1"){
                    alert("更新成功");
                }else{
                    alert("更新失败");
                }
            }
        });
    });
</script>
</body>
</html>

2.server.js

按ID查询数据, 并把数据渲染到ejs模板

var express = require("express");
var mongodb = require("mongodb");
var bodyParser = require("body-parser");
var db = require("./module/db.js");
var app = express();
app.use(express.static("./public"));
// app.set("views","test");//把默认文件夹views改为了test,这样设置会去指定的test文件夹下去寻找模板文件
app.set("view engine","ejs");//这样设置, 默认去views文件夹下去找ejs后缀的文件
/**
 * bodyParser.json()和bodyParser.urlencoded()区别:
 * 一个接受form请求,一个接受json请求,解析的规则不一样
 */
app.use(bodyParser.urlencoded({extended:false}));
app.post("/insert",function(req,res){
    console.log(req.body);
    db.insert("worker",{
        name:req.body.name,
        age:req.body.age,
        pwd:req.body.pwd
    },function(err,results){
        if(err){
            res.json("-1");
        }else{
            res.json("1");
        }
    });
});
app.get("/getworker",function(req,res){
    db.find("worker",{"age":req.query.age},function(err,results){
        if(err){
            res.json("-1");
        }else{
            res.json(results);
        }
    });
});
app.get("/delworker",function(req,res){
    db.delete("worker",{"_id":mongodb.ObjectId(req.query.id)},function(err,results){
        if(err){
            res.json("-1")
        }else{
            res.json("1")
        }
    })
});
//修改页面跳转
app.get("/edit",function(req,res){
    db.find("worker",{"_id":mongodb.ObjectId(req.query.id)},function(err,results){
        //将结果渲染到ejs模板
        res.render("edit",results[0]);
    });
});
//修改页面提交
app.post("/editworker",function(req,res){
    db.update("worker",{"_id":mongodb.ObjectId(req.body.workerid)},{
        $set:{
            name:req.body.name,
            age:req.body.age,
            pwd:req.body.pwd
        }
    },function(err,results){
        if(err){
            res.json("-1");
        }else{
            res.json("1");
        }

    })
})
app.listen(80);

3.db.js

var mongodb = require("mongodb");
var MongoClient = mongodb.MongoClient;
function _connect(callback){
    var url = "mongodb://localhost:27017/company";
    MongoClient.connect(url,function(err,db){
        callback(err,db);
        db.close();
    })
}
exports.find = function(collectionName,json,callback){
    _connect(function(err,db){
        db.collection(collectionName).find(json).toArray(function(err,results){
            callback(err,results);
        });
    })
}
exports.insert = function(collectionName,json,callback){
    _connect(function(err,db){
        db.collection(collectionName).insertOne(json,function(err,results){
            callback(err,results);
        })
    });
}
exports.delete = function(collectionName,json,callback){
    _connect(function(err,db){
        db.collection(collectionName).deleteOne(json,function(err,results){
            callback(err,results);
        })
    });
}
//修改 where修改条件 json修改内容
exports.update = function(collectionName,where,json,callback){
    _connect(function(err,db){
        db.collection(collectionName).updateOne(where,json,function(err,results){
            callback(er`
,results);
        })
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值