我有一个请求,其中包含数据和_id
如果带有_id的记录存在并且创建一个没有人的代码,那么实现代码的更好方法是什么?我的代码:
var obj = req.body;
Model.findById(obj._id, function(err, data){
if (!data){
var model = new Model(obj)
model.save(function(err, data){
res.send({method: 'create', error: err, data: data})
})
} else {
Model.findByIdAndUpdate(obj._id, obj, function(){
res.send({method: 'update', error: err, data: data})
})
}
Run Code Online (Sandbox Code Playgroud)
我只是想也许有更好的办法.
我一直在写我的第一个节点应用程序,一个休息API.我已经把一切都运行得很好但PUT不会经历.我尝试了很多不同的组合,很多旧的教程和一些新的教程,我可能非常接近我只是不确定如何更新记录.此外,如果你看到任何跳出来的东西,请随时告诉我!我真的很喜欢节点,所以我很乐意学习最佳实践.
下面是我的表的路由,所有其他端点工作正常.如果您有任何疑问,请与我联系.
//Database
var mongoose = require("mongoose");
mongoose.connect('mongodb://Shans-MacBook-Pro.local/lantern/');
// Schema
var Schema = mongoose.Schema;
var Person = new Schema({
first_name: String,
last_name: String,
address: {
unit: Number,
address: String,
zipcode: String,
city: String,
region: String,
country: String
},
image: String,
job_title: String,
created_at: { type: Date, default: Date.now },
active_until: { type: Date, default: null },
hourly_wage: Number,
store_id: Number,
employee_number: Number
});
var PersonModel = mongoose.model('Person', Person);
// Return all people
exports.allPeople = function(req, res){
return PersonModel.find(function (err, person) …Run Code Online (Sandbox Code Playgroud)