簡體   English   中英

如何在Node.js中將數據從服務器發送到客戶端?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM