无法在node.js中发送Javascript对象的数组

我有以下代码

app.get('/posts',function(req,res){ console.log(posts); res.send(posts); res.send(200); }); 

而我正在使用以下来获取和返回js对象的数组(职位是数组)

 App.PostsRoute = Ember.Route.extend({ model: function(){ return $.ajax({ url : '/posts', type : 'GET', success : function(data){ return data; } }); } }); 

所以当我用[ { body: "Hello" }, {body : "world" } ]填充posts数组,我在控制台中得到以下输出:

节点控制台的输出

而在我的应用程序,该模型不呈现,而且我不能看到铬开发工具的任何反应,这些是一些ss

铬SS

响应为空,甚至不是{} 。 出了什么问题? 我不认为Ember有任何东西,毕竟我看不到回应!

我认为这个问题是因为你调用了res.send两次。 只要评论这一行:

 res.send(200); 

Express不需要这一行,因为Express自动将状态码设置为200 (或者在某些场合304 )。

如果你想设置自己的状态码,只需写:

 res.status(someCode); 

你可以在这里阅读。

一些问题:

  1. 你需要JSON.stringify你的对象之前,你发送它。

  2. 尝试使用这个而不是res.send:

     res.writeHead(200, {'Content-Type': 'application/json'}); res.end(JSON.stringify(posts)); 
  3. 你在哪里试图返回“数据”? 你应该有一些callback函数,像这样:

     success:function(data) { handleData(data); }