2015-05-20 2 views
0

Я бегу сервер в nodejs с курьерским служить форму HTML в файле index.html к клиенту, как это:Как отправить данные с сервера на клиент в nodejs?

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
app.use(bodyParser()); 
app.get('/', function(req, res){res.sendfile('index.html');}); 
app.post('/', function(req, res){ 
    res.json(req.body); 
}); 

app.listen(8080); 

req.body дает мне форму ввода. Теперь мне нужно отправить обратно req.body клиенту, и сделать это, я использую Ajax на стороне клиента (внутри index.html), как это:

var data; 
$('#submit').click(function() 
{ 
    console.log('Button Clicked'); 
    $.ajax({ 
     url: '/', 
     type:'POST', 
     data: data, 
     dataType: 'json', 
     }).done(function(data) { 

      console.log(data); 
     });  
}) 

Однако, когда я нажимаю на кнопку submit I получите Object {} в консоли браузера, а не в форме ввода. Что мне здесь не хватает?

+0

Я не думаю, что вы правильно используете парсер. https://github.com/expressjs/body-parser –

+0

Вы отправляете строку JSON, и ваш сервер преобразуется в объект JSON, который вы возвращаете, но не как строку. Попробуйте 'res.json (JSON.stringify (req.body));' – Vic

+0

результат этого был {} – David

ответ

0

Есть две проблемы в вашем коде:

Прежде всего, как уже комментарии, bodyParser() осуждается, вы должны использовать конкретные bodyParser (промежуточное программное JSON, текст, urlencoded, сырье). Так что в вашем случае:

app.use(bodyParser.json()) 

Во-вторых, клиент сторона вызов jQuery.ajax должен stringify данные. Например:

$('#submit').click(function() 
{ 
    console.log('Button Clicked'); 
    $.ajax({ 
     url: '/', 
     type:'POST', 
     data: JSON.stringify(data), 
     dataType: 'json', 
     }).done(function(data) { 
      console.log(data); 
     });  
}) 
+0

также не работает. Вы знаете, где я могу найти ясные примеры этого? – David

+1

Это работает для меня ... Вы назначаете данные var значение или оно не определено, как в вашем примере кода? Что вы подразумеваете под «это не работает»? –

Смежные вопросы