MongoDB读取数据,之后通过res.json()传递到前端读取不到create_at_ago()函数???
发布于 8 年前 作者 ly525 3969 次浏览 来自 问答

各位大大好,我有一个问题,我保存一个比如回答的评论信息到MongoDB之后,会得到保存的文档也就是answerComment,但是我在后台通过console输出可以得到newAnswerComment.create_at_ago()是有时间的比如几秒前,但是通过下面代码中的res.json()传到前端的时候就读取不到了,报错create_at_ago is not a function请问各位这是什么原因,着实搞了好几天还没明白,找了很多资料,很迷茫,拜谢了

AnswerComment.newAndSave(answer_id, author_id, content, master_id, function (err, answerComment) {
        if (err) next(err);
        var proxy = new EventProxy();
        proxy.all('answer_ready', 'author_ready', function () {
            console.log(newAnswerComment.create_at_ago())
            res.status(200).json({resultFromServer: "successCreateComment", answerComment: answerComment});
        });
        // 更新回答的评论数量
        Answer.getAnswerWithoutUserById(answerComment.answer_id, function (err, answer) {
            if (err) next(err);
            // answer.comment_count++;
            answer.save(function (err) {
                if (err) next(err);
                proxy.emit('answer_ready');

            });
        });

####newAndSave方法详情

exports.newAndSave = function (answer_id, author_id, content, master_id, callback) {
    var answerComment       = new AnswerComment();
    answerComment.answer_id = answer_id;
    answerComment.author_id = author_id;
    answerComment.content   = content;
    answerComment.master_id = master_id || null;
    answerComment.save(callback);
};
1 回复

答不对题的说一句。你的 eventproxy 用法需要改进。

你看看 eventpoxy.fail 和 eventproxy.done 这两个函数。不要手动判断 if (err) 然后 next,让 eventproxy 处理这些。

回到顶部