[英]How to send data from server to client in nodejs?
我在帶有express的nodejs中運行服務器,以將文件index.html中的html表單提供給客戶端,如下所示:
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發送回客戶端,並為此在客戶端(在index.html內)使用ajax,如下所示:
var data;
$('#submit').click(function()
{
console.log('Button Clicked');
$.ajax({
url: '/',
type:'POST',
data: data,
dataType: 'json',
}).done(function(data) {
console.log(data);
});
})
但是,當我單擊submit
按鈕時,會在瀏覽器控制台中獲得Object {}
,而不是表單輸入。 我在這里想念什么?
您的代碼中有兩個問題:
首先,如評論所述,不建議使用bodyParser()
,您應該使用特定的bodyParser中間件(json,文本,urlencoded,raw)。 因此,在您的情況下:
app.use(bodyParser.json())
其次,您對jQuery.ajax的客戶端調用應將您的數據字符串化。 像這樣:
$('#submit').click(function()
{
console.log('Button Clicked');
$.ajax({
url: '/',
type:'POST',
data: JSON.stringify(data),
dataType: 'json',
}).done(function(data) {
console.log(data);
});
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.