使用nodejs和express,我想使用JSON返回一个或多个对象(数组).在下面的代码中,我一次输出一个JSON对象.这很管用,但这不是我想要的.生成的响应不是有效的JSON响应,因为我有很多对象.

我很清楚,我可以简单地将所有对象添加到一个数组中,并以res.end返回该特定array.然而,我担心这可能会成为沉重的过程和内存密集型.

用nodejs实现这一点的正确方法是什么?这就是疑问.每种方法都有正确的调用方法吗?

app.get('/users/:email/messages/unread', function(req, res, next) {
    var query = MessageInfo
        .find({ $and: [ { 'email': req.params.email }, { 'hasBeenRead': false } ] });

    res.writeHead(200, { 'Content-Type': 'application/json' });   
    query.each(function(err, msg) {
        if (msg) { 
            res.write(JSON.stringify({ msgId: msg.fileName }));
        } else {
            res.end();
        }
    });
});

推荐答案

在express 3上,您可以直接使用res.json({foo:bar})

res.json({ msgId: msg.fileName })

看到documentation了吗

Node.js相关问答推荐

正在try 使用Azure Function App上载文件时未上载文件(&Q;)

使用NodeJS的DynamoDB中的BatchGetItem出现MultipleValidationError

Node-Red Tasmota 错误:连接 ECONNREFUSED 192.168.77.21:1883

在 puppeteer 中从 pdf 中删除 about:blank 和 date-time

我的 React + Express 应用程序不断向我的数组添加一个空对象

加速 sequelize ORM 中的查询

将 AllowDiskUse true 添加到 node.js 中的 MongoDB 聚合?

try 在 Heroku 中部署 PRN 应用程序并获得 404

如何刷新 youtube-data-api v3 的访问令牌

NestJS TypeORM 可选查询不起作用

如何在 Node.js 的 console.log() 中创建换行符

我可以通过 JNI 从 Node.js 调用 Java 吗?如何?

在 PassportJS 中使用多种本地策略

为当前目录提供服务的简单文件服务器

Puppeteer:如何提交表单?

Bootstrap 中的 Grunt 依赖冲突

如何从 findOneAndUpdate 方法中获取更新的文档?

Node.js:如何附加到正在运行的进程并使用控制台调试服务器?

使用 Mongoose 进行多对多映射

如何创建安全(TLS/SSL)Websocket 服务器