Javascript nodejs中未定义req.body.data
我的客户方Javascript nodejs中未定义req.body.data,javascript,node.js,express,Javascript,Node.js,Express,我的客户方 $.post("http://localhost:3000/scrape", { data: 'something' }, function(data, status){ console.log(data); }); 我在node.js中做什么 var express = require('express'); var app = express(); var bodyParser = require('b
$.post("http://localhost:3000/scrape",
{
data: 'something'
},
function(data, status){
console.log(data);
});
我在node.js中做什么
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post('/scrape', function (req, res) {
console.log(req.body.data)
});
但是我在console.log(req.body.data)中没有定义,知道为什么吗
console.log(req.body.data)
返回未定义,因为数据在req.body
中,您应该console.log(req.body)
并添加app.use(bodyParser.urlencoded({extended:false}))代码>以便也可以解析非json格式的数据
如果你想要req.body.data
有数据,那么请求如下
$.post("http://localhost:3000/scrape",
{
data: {data: 'something'}
},
function(data, status){
console.log(data);
});
此外,您的请求没有发送任何响应,您需要执行以下操作
app.post('/scrape', function (req, res) {
console.log(req.body.data)
res.status(200).json({data: reqr.body.data});
});
希望有帮助:)您的数据必须是json格式。因为您使用的是bodyParser.json()
尝试在$中将http头内容类型
设置为应用程序/json
。发布
调用并将有效的json结构作为数据发送
$.ajax({
url: "scrape",
type: "POST",
data: JSON.stringify({ someData : "someData}),
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(data){
console.log(data)
},
error: function(){
console.log('error in sending request')
}
})
谁否决了这个?至少给出一个理由