0

关于使用 JSON 在客户端和服务器之间传输数据的一个小疑问。这是一个将数据发送到客户端的 node.js 服务器脚本。

下面的服务器脚本是否已经以 json 格式发送数据,还是我必须在脚本中进行一些更改?基本上我想在服务器和客户端之间以 json 格式发送数据。

app.get('/playground', function(req, res) {
    AM.getAllCategories( function(e, categories){            
       res.render('playground', { title : 'Categories List', cats : categories });
}

AM.getAllCategories queries mongodb and returns something like this
[{"name":"Electronics"},{"name":"Real Estate"}] 

//form( method="post")#sender-form.form-inline.well.span6
    form( method="post")#category-form
      h1
      p#sub1.subheading Select a category
      //hr
      div.container(style='margin:20px')
        table.table.table-bordered.table-striped
          thead
            tr
              //th(style='width:40px') #
              th(style='width:180px') Name
              th(style='width:200px') Location
              th(style='width:180px') Username
              //th Account Created
          tbody
            - for (var i = 0; i < cats.length; i++)
              tr
                td
                  a(href='/home/')= cats[i].name
4

2 回答 2

0

要将 JSON 发送到客户端,请res.send()与对象一起使用,或使用res.json(). res.render()呈现视图,并且不会创建 JSON。

AM.getAllCategories(function(err, categories) {   
  if (err) {
    // if there's an error, send a 500 and the error in JSON
    res.json(500, err);
    return;
  }

  res.set('Content-Type', 'application/json'); // probably unneeded
  res.send(categories);

  // or the JSON function
  res.send(categories);
  res.send(200, categories); // send a status code
}
于 2013-09-09T14:10:15.880 回答
0

该脚本可能以 HTML(常规网页)发送响应。要使其输出 JSON,请尝试更改:

app.get('/playground', function(req, res) {
  AM.getAllCategories(function(e, categories){   
   // TODO: also, check for error here ("e" variable)         
   res.send(categories);
  }
}
于 2013-09-09T13:57:51.993 回答