我的服务器端使用节点js,客户端使用angular和html。
我已将服务器端的数据插入到mongoose中。当我在同一页面上并希望向mongoose插入新数据时,我必须重新启动服务器以使其正常工作。
如何在代码中编写它以重新启动它?或者如果有不同的方法来清理我之前的请求?
var savePersonal = new personal({
email : myemail,
Tags : mytags,
Title: request.body.Title,
Info: request.body.Info,
Category: request.body.Category,
file: "none",
Recommendation:request.body.Recommendation,
myDate:tempDate
});
savePersonal.save(function(error, result) {
if (error) {
console.error(error);
} else {
console.log("save");
request = "";
response.redirect('http://localhost:8080/getPrivateData.html');
}
})
答案 0 :(得分:1)
如果您不想在db中创建新文档,则必须使用update方法,例如:
var mongoose = require('mongoose');
var personal = mongoose.models.personal;
personal.find({}, function(err, users){
if(err) throw err;
var data = {
email : myemail,
Tags : mytags,
Title: request.body.Title,
Info: request.body.Info,
Category: request.body.Category,
file: "none",
Recommendation:request.body.Recommendation,
myDate:tempDate
};
if(users.length)
personal.create(data, function(err, results){...});
else
personal.update({_id: users[0]._id}, data, function(err, results){...});
})
这是非常粗略的代码,但主要思想是: 1)检查是空的 2)如果它是空的,则使用save / create 3)如果它不是空的,则使用更新,但是对于更新,您必须知道文档的_id。我使用第一个元素的id(users [0] ._ id)。