求助: express建站,mangodb中添加记录,不会进入save回调.
发布于 9 年前 作者 xjchenhao 3391 次浏览 最后一次编辑是 8 年前 来自 问答

最近在学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… 谢谢回复啊!!

回到顶部