繁体   English   中英

Node.js和猫鼬更新参数

[英]Node.js and mongoose update parameters

task.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var taskSchema = new Schema({
   status: {type: String, default: 'TO-DO'},
   contents: String,
   createDate: {type: Date, default: Date.now},
   author: {type:String, defafult:'Chris'}
});

module.exports = mongoose.model('Task', taskSchema);

task-controller.js

var Task = require('../models/task.js');

exports.update = function(req, res) {
   Task.update({
       contents : req.body.contents
   }, {
       status : req.body.status
   }, function(err, numberAffected, raw) {
       if (err) {
           throw err;
       }
       console.log('The number of updated documents was %d', numberAffected);
       console.log('The raw reponse from MongoDB was', raw);
   });
      res.redirect('/');
      res.end();
   };

在task-controller.js中,您可以看到“ numberAffected”和“ raw”参数。 但是,当我执行代码时,控制台将显示

更新文件的数量为NaN

来自MongoDB的原始响应未定义

因此,我搜索了参考文献,但找不到这些类型的参数。 这些参数有效吗?

这是因为Model.update返回的回调只有两个参数,第一个参数为err,第二个numAffected(这是Object而不是数字),如下所示:

var Task = require('../models/task.js');

exports.update = function(req, res) {
   Task.update({
       contents : req.body.contents
   }, {
       status : req.body.status
   }, function(err, numberAffected) {
       //numberAffected is Object
       if (err) {
           throw err;
       }
       console.log('The number of updated documents was ', numberAffected); //Remove %d as numberAffected is not a number
   });
      res.redirect('/');
      res.end();
   };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM