2013-09-09 3 views
0

Небольшое сомнение в отношении передачи данных между клиентом и сервером с использованием JSON. Вот сценарий сервера node.js, который отправляет данные клиенту.Является ли формат передачи данных JSON между клиентом и сервером?

Является ли приведенный ниже серверный скрипт отправкой данных в формате 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

Этот сценарий, вероятно, отправляет ответ в HTML (обычная веб-страница). Для того, чтобы сделать его вывода JSON, попробуйте изменить это:

app.get('/playground', function(req, res) { 
    AM.getAllCategories(function(e, categories){ 
    // TODO: also, check for error here ("e" variable)   
    res.send(categories); 
    } 
} 
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 
}