簡體   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