如何在请求中操纵res.locals对象?

时间:2015-10-26 14:02:08

标签: javascript node.js express momentjs

我在项目中使用node-restful,我想用moment替换我的日期属性。

当我尝试下面的内容时;

var QuestionResource = app.user = restful.model('Question', questionSchema)
        .methods(['get', 'post', 'put', 'delete']);

    QuestionResource
        .after('get', function(req, res, next) {
            res.locals.bundle.forEach(function(question) {
               res.locals.bundle[res.locals.bundle.indexOf(question)].created_at = moment(question.created_at).fromNow()
            })
            next()
        })

响应数据未更改。为什么?怎么办呢?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我刚刚在github帮助 node-restful 社区解决了我的问题。

调查一下,它看起来像是因为返回的模型不是普通对象,而是一个猫鼬对象的实例。

在后期处理中,手动调用toObject()

res.locals.bundle.forEach(function(question, idx, questions) {
  questions[idx] = question.toObject();
  questions[idx].created_at = moment(question.created_at).fromNow()
})