求助: express建站,mangodb中添加记录,不会进入save回调.
最近在学express建站,写了一个电影网站的demo,遇到一点问题,百思不得其解,求大神指点.
问题描述: 在新增记录的时候,表单填写完成点击导入,请求发送出去了,但是它会一直请求,不会进入save回调,也没有报错.(这里进的是if中else部分的代码块)
app.post('/admin/movie/new', function (res, req) {
var id = res.body.movie._id;
var movieObj = res.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,
year: movieObj.year,
poster: movieObj.poster,
summary: movieObj.summary,
flash: movieObj.flash
});
_movie.save(function (err, movie) {
if (err) {
console.log(err);
}
res.redirect('/movie/' + movie._id);
});
}
});
可能原因: 感觉应该是数据库连接失败,因为看项目db文件夹下并没有创建出数据库文档. 项目地址: https://github.com/xjchenhao/Learn/tree/master/nodejs/%E7%AB%99%E7%82%B9%E5%BB%BA%E8%AE%BE/imooc
4 回复
建议单步调试,确保程序按照你预想的上下文运行;不用webstorm?
@DevinXian 我用webstorm的, debug调试时请求发送后是进入save函数中了, 但是并没有运行我传进去的回调函数. 这个函数里逻辑好深啊, 看不懂…
@ch178 问题解决了嘛?
@DevinXian 不好意思已经解决了,是手抖写错了res.redirect('/movie/' + movie._id);
,应该是req
… 谢谢回复啊!!