客户端和服务器之间的数据传输格式是JSON吗?

时间:2013-09-09 13:53:44

标签: json node.js pug

关于使用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

2 个答案:

答案 0 :(得分: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);
  }
}

答案 1 :(得分: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
}