HTTP:响应主体中每行一个对象

时间:2018-04-07 17:05:44

标签: javascript node.js http express

我应该创建一个API,在响应的正文中返回"每行一个JSON对象"像这样:

GET /somerequest

回复机构:

{"a": 1, "b": 2}
{"c": 1, "b": 3}
{"a": 4, "b": 2}
... 

我绝对不知道如何干净地这样做。我应该把什么放在我的res.send(...)? 我应该将我的对象变成字符串,用' \ n'然后发回这个字符串?听起来不太干净。

我是Web开发人员的新手,如果答案很明显,请原谅我。

EDIT1:也许它被用作jsonlines以获得更好的可读性和易于评估。

1 个答案:

答案 0 :(得分:1)

因为http响应是可写的,所以很容易做到。

这是一个使用bolt协议从neo4j db读取数据的示例。

(res, query) => {
    res.writeHead(200, {
        'Content-Type': 'text/plain',
        'Transfer-Encoding': 'chunked',
        'Trailer': 'Content-MD5'
    });
    const session = driver.session()
    session
        .run(query)
        .subscribe({
            onNext: function (record) {
                const newObj = { "whatever": recod.get("something") }
                res.write(JSON.stringify(newObj) + '\n')
                },
            onCompleted: function () {
                res.addTrailers({ 'Content-MD5': '7895bf4b8828b55ceaf47747b4bca667'})
                res.end()
                session.close();
            },
            onError: function (error) {
                console.log(error);
                res.send({ success: false, message: error })
            }
        })
}