簡體   English   中英

Nodejs從請求中獲取[object Object]

[英]Nodejs getting [object Object] from request

我將變量從AJAX傳遞給Node JS服務器但是,當我嘗試從請求中提取數據時,我不斷獲取[Object Object] 如何將數據從AJAX傳遞到Node?

AJAX:

$.ajax({
            type: "POST", 
            url: "/Watch", 
            data: {"name" : stockName},
            contentType: "json", 
            success: function(d) {
                //Stuff happening
            }, 
            error: function(d) {
                console.log("Error");
            }
        });

節點JS服務器:

app.post('/Watch', function(req, res) {     

console.log("DATA from AJAX = " + req.body);//Returns [Object Object]
console.log("DATA from AJAX = " + req.body.data);//Returns 'undefined'
console.log("DATA from AJAX = " + req.data);//Returns 'undefined'
console.log("DATA from AJAX = " + req.name);//Returns 'undefined'
console.log("DATA from AJAX = " + req.body.data);//Returns 'undefined'  

res.send("");
});

在Node JS中,console.log顯示了我嘗試從請求中獲取數據的一些不同之處。

在@mscdex的幫助下,解決方案是

AJAX:

alert(JSON.stringify({"name" : stockName}));
        $.ajax({
            type: "POST", 
            url: "/Watch", 
            data: JSON.stringify({"name" : stockName}), 
            contentType: "application/json", 
            success: function(d) {
                //Stuff                 
            }, 
            error: function(d) {
                console.log("Error");
            }
        }); 

節點JS:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var port = process.env.PORT || 5000;

app.use(bodyParser.json());   

app.post('/Watch', function(req, res) {
    console.log("In Watchlist POST");

    console.log("DATA from AJAX = " + req.body.name);//This was the solution    

    res.send("Finished Watchlist post");
});

app.use(express.static('public'));

app.listen(port, function () {
    console.log('App listening on port ' + port);
});

使用res.format格式化並發送到請求的內容類型,

res.format({
  'text/plain': function(){ 
   res.send( 'some json string inside quotes' );
},
 'text/html': function(){
  res.send('sending html response');
               },
'application/json': function(){
  res.json({ 
     success: true,
     messge: 'what you requested',
  });
},
'default': function() {
  res.status(406).send('Invalid format requested!');
}
});

您可以隨時填充數據。 在javascript上,只需評估get / post eval('('+ msg + ')');上的字符串eval('('+ msg + ')');

$.ajax { 
...
success: function (msg, statusText) {
     console.log("Response: " + msg);
     msg = eval('('+ msg + ')');
     $('.result').html(msg.status);
     console.log(msg);

},
....
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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