NodeJS应用程序只显示第一个JSON对象.为什么?
Node JS app only display the first JSON object. Why?
我正在尝试在我的节点应用程序中编写一个json对象,集成Twilio API。当控制台记录对象时,所有对象都会正确返回,但当我将其写入文档时,只写入第一个对象。为什么?我应该如何更改代码以查看与控制台日志中相同的书面响应。
var express = require('express');
var app = express();
app.use(express.bodyParser());
app.get('/', function(req, res) {
var accountSid = 'xxx';
var authToken = 'xxx';
var client = require('twilio')(accountSid, authToken);
client.messages.list({
from: "xxx",
to: "xxx"
}, function(err, data) {
data.messages.forEach(function(message) {
console.log(message.body); // THIS WILL DISPLAY ALL OBJECTS
res.json(message.body); // THIS WILL ONLY DISPLAY THE FIRST OBJECT
});
});
});
app.listen(1337);
我是NodeJS的新手,认为这很容易解决,但我仍然找不到解决方案。
res.json(...);
发回响应。您在数组的第一次迭代中就这样做了,因此客户端只得到第一条消息。
如果要从所有消息中提取body
并将其全部发送回,请执行此操作。使用所需的数据创建一个数组并将其发回。示例:
res.json(data.messages.map(function(message) {
return message.body;
}));
每个请求只能调用res.json
一次。你在循环中多次调用它。第一次调用它时,浏览器会收到响应,对于所有其他res.json调用,您会得到一个headers already sent
异常(或类似的异常)。
res.json实际上是将数据转换为json。我敢打赌,它没有处理一些事情,或者只是把事情搞砸了。如果Twilio的响应已经是json,那么您可能不需要这么做。试试res.send,它只会返回你得到的任何东西。
相关文章:
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 为什么可以't我在JavaScript中获取导航器对象的属性计数
- 为什么我要将函数添加到对象原型中,而不是将其添加到对象中
- 为什么可以't我用Set对象调用Array.prototype.map
- 为什么控制台没有't使用输入的对象's的`toString`方法
- 创建新对象时,为什么要更新旧对象
- 为什么要使用立即调用的函数来创建新对象
- 为什么document.getElementsByClassName(“className”)返回对象
- 为什么代码会指向window对象
- 为什么数组在对象内部迭代对象时存储重复值
- 为什么Javascript程序员更喜欢在代码中重复字符串作为常量,而不是使用枚举类型的对象
- 为什么Angularjs服务返回的是字符数组而不是对象数组
- NodeJS应用程序只显示第一个JSON对象.为什么?
- JavaScript:古代代码使用“new”关键字启动简单对象.为什么
- JavaScript 对象 - 为什么未定义的属性
- UnCaught TypeError-Javascript中的嵌套对象?为什么不允许这样做?对象文字表示法有效
- 对象.为什么我的代码输出对象而不是名称字符串值
- NodeJS模块填充的数组变成空对象.为什么