为了账号安全,请及时绑定邮箱和手机立即绑定

在node + mongodb建站时出现的问题

在node + mongodb建站时出现的问题

LNoe 2016-02-22 17:17:18
我用的express为4.13.1,mongoose为4.4.4,而且我跟老师讲的目录结构不太一样,用的webstorm新建的nodejs项目在录入页post后出现如下错误:_movie.save(function(err, movie){             ^ TypeError: Cannot read property 'save' of null这是我出现错误的代码位置://admin post movie router.post('/admin/movie/new', function(req, res){   var id = req.body.movie._id;   var movieObj = req.body.movie;   var _movie;   if (id !== 'undefined'){     Movie.findById(id, function(err, movie){       if (err){         console.log(err);       }       _movie = _.extend(movie, movieObj);       _movie.save(function(err, movie){         if (err){           console.log(err);         }         res.redirect('/movie/' + movie._id);       });     });   }else {     _movie = new Movie({       doctor: movieObj.doctor,       title: movieObj.title,       country: movieObj.country,       language: movieObj.language,       poster: movieObj.poster,       year: movieObj.year,       summary: movieObj.summary,       flash: movieObj.flash     });     _movie.save(function(err, movie){       if (err){         console.log(err);       }       res.redirect('/movie/' + movie._id);     });   } });var mongoose = require('mongoose'); var MovieSchema = new mongoose.Schema({     title: String,     doctor: String,     language: String,     country: String,     summary: String,     flash: String,     poster: String,     year: Number,     meta: {         createAt: {             type: Date,             default: Date.now()         },         updateAt: {             type: Date,             default: Date.now()         }     } }); MovieSchema.pre('save', function(next){     if (this.isNew){         this.meta.createAt = this.meta.updateAt = Date.now();     }else {         this.meta.updateAt = Date.now();     }     next(); }); MovieSchema.statics = {     fetch: function(callback){         return this             .find({})             .sort('meta.updateAt')             .exec(callback)     },     findById: function(id, callback){         return this             .findOne({_id: id})             .exec(callback)     } }; module.exports = MovieSchema;var mongoose = require('mongoose'); var MovieSchema = require('../schemas/movie'); var Movie = mongoose.model('Movie', MovieSchema); module.exports = Movie;求大神们帮忙!!!
查看完整描述

5 回答

?
程序员熊明才

TA贡献2条经验 获得超0个赞

之后会遇到这个报错    !  求解决分享


Warning: missing space before text for line 35 of jade file "/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/views/pages/admin.jade"

Warning: missing space before text for line 35 of jade file "/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/views/pages/admin.jade"

take hello

undefined

{ MongooseError: Movie validation failed

/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/app.js:173

    at ValidationError (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/error/validation.js:22:11)

        res.redirect('/movie/'+_movie._id);

    at model.Document.invalidate (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/document.js:1410:32)

                                     ^

    at model.Document.set (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/document.js:695:10)


TypeError: Cannot read property '_id' of undefined

    at /Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/app.js:173:38

    at model.Document.set (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/document.js:540:18)

    at model.Document (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/document.js:66:10)

    at model.Model (/Users/xiongmingcai/GitHub/viewapp/Nodeweb-master/node_modules/mongoose/lib/model.js:41:12)


查看完整回答
反对 回复 2016-12-06
?
liqian888

TA贡献1条经验 获得超0个赞

你找到解决办法没?我也遇到这个问题

查看完整回答
反对 回复 2016-11-17
?
_潇潇暮雨

TA贡献646条经验 获得超225个赞

检查一下第一个文件的13行_movie是否取到了正确的值

查看完整回答
反对 回复 2016-02-24
?
郑家好人

TA贡献1条经验 获得超0个赞

请教一下isNew是什么意思?

查看完整回答
反对 回复 2016-02-23
  • 5 回答
  • 0 关注
  • 2244 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信