javascript – 使用mongoose更新,不返回任何错误但不更新
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用mongoose更新,不返回任何错误但不更新,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1625字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试用猫鼬学习CRUD.我只是错过了更新部分.我究竟做错了什么?
我的模特
var mongoose = require('mongoose');
var testSchema = new mongoose.Schema({
name: String,
number: Number
});
mongoose.model('TestData', testSchema);
我的路线
// get the models
var Test = mongoose.model('TestData');
PARAM
如果链接将’test’作为url参数,它将查看对象是否存在于数据库中,否则返回错误.
router.param('test', function(req, res, next, id){
var query = Test.findById(id);
query.exec(function(err, test){
if(err){ return next(err); }
if(!test){ return next(new Error('can\'t find test')); }
req.test = test;
return next();
});
});
GET BY ID
/* GET testdata/:id */
router.get('/testingdata/:test', function(req, res, next){
req.test.populate('test', function(err, test){
res.json(test);
});
});
删除
/* DELETE testdata/:id */
router.delete('/testingdata/:test', function(req, res, next){
req.test.remove('test', function(err, test){
console.log('removed');
res.json(test);
});
});
我的问题
现在问题来了,如果我尝试更新一个,我只是遗漏了一些东西.
/* PUT testdata/:id */
router.put('/testingdata/:test', function(req, res, next){
req.test.update('test',{$set: {name: 'new data'}} , function(err, test){
res.json(test);
});
});
我没有收到任何错误,但它既没有更新任何内容.它甚至返回了一些数据.
{
"ok": 0,
"n": 0,
"nModified": 0
}
解决方法:
尝试没有不需要的第一个参数(测试),因为req.test是Test模型的一个实例.
req.test.update({name: 'new data'} , function(err, test){
res.json(test); // test would be `1` if success
});
update方法不会返回对象,如果要返回object,则使用save:
req.test.name = 'new data';
req.test.save(function(err, test){
res.json(test);
});
内容总结
以上是互联网集市为您收集整理的javascript – 使用mongoose更新,不返回任何错误但不更新全部内容,希望文章能够帮你解决javascript – 使用mongoose更新,不返回任何错误但不更新所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。