CouchDB中的JSON stange行为

时间:2016-01-21 11:35:05

标签: javascript angularjs json couchdb seamonkey

我在CouchDB中使用这样的测试代码创建了更新处理程序(在插入Couch之前我删除换行符):

function (doc, req) {
    if (req['userCtx']['roles'].indexOf('editor') < 0) {
        return [null, 'Access denied'];
    }
    if (!doc) {
        if (/*!('_id' in req) &&*/ !req['_id'] /*&& 'title' in req['body']*/ && !!req['body']['title'] /*&& 'content' in req['body']*/ && !!req['body']['content']) {
            return [{ 'title': req['body']['title'], 'content': req['body']['content'], 'date': new Date(), 'edited_by': req['userCtx']['name'] }, 'Created' + toJSON(req)];
        }
        return [null, 'Empty' + toJSON({ 'no_id': !req['_id'], 'title': !!req['body']['title'], 'content': !!req.body['\"content\"'], 'body':req.body })];
    }
    doc['date'] = new Date();
    doc['edited_by'] = req['userCtx']['name'];
    return [doc, 'Edited' + toJSON(doc)];
}

Angular在POST调用中发送数据

{"title":"test","content":"test"}

作为回报我正在

Empty{"no_id":true,"title":false,"content":false,"body":"{\"title\":\"test\",\"content\":\"test\"}"}

怎么了?为什么它不希望看到收到的对象不在直接a.b中,而不是在哈希a['b']中,而不是在转义a['\"b\"']中?我希望这是我的错,不是沙发。怎么做对了?

1 个答案:

答案 0 :(得分:2)

你必须首先将正文解析为JSON ......

使用如下所述的body-parser:Advanced Search