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