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);
})
})
}