gpt4 book ai didi

angularjs - 请求不显示带有正文解析器的数据

转载 作者:可可西里 更新时间:2023-11-01 17:07:30 25 4
gpt4 key购买 nike

我正在将一些 JSON 对象从我的 AngularJS 客户端发送到我的 NodeJS 服务器。

这是我发出 POST 请求的客户端代码。

customerData.endPoint = "customers";
$http.post('https://woocommerce-api-samarthagarwal-1.c9users.io/api', customerData)
.then(function(response){
console.log(response)
});

这是我的服务器代码。

var express = require('express');
var bodyParser = require("body-parser");
var app = express();

var urlParser = bodyParser.urlencoded({ extended: true});
var jsonParser = bodyParser.json();

app.post('/api', jsonParser, function(request, response){
response.setHeader("Access-Control-Allow-Origin", "*");
console.log("body " + JSON.stringify(request.body));
var endPoint = request.body.endPoint;
console.log("POST on " + endPoint + " with Data " + (request.body.customer));
});


var port = process.env.PORT;
var ip = process.env.IP
app.listen(port, ip, function () {
console.log('Server listening on ' + ip +':' + port);
});

但没有任何内容记录到控制台。

Console

非常感谢任何帮助。提前致谢。

最佳答案

您需要将 bodyParser 注册为 express 的中间件,否则它将不知道如何解析正文。这个中间件需要在定义任何路由之前出现。

如果不将 bodyParser 注册为中间件,您的 request.body 将始终是 {}。因此,在执行 request.body.customer 时,该值将为 undefined 并且您的整个 console.log() 语句不会打印到控制台。

Example of body-parser usage from docs

var express = require('express');
var bodyParser = require("body-parser");
var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true});

app.post('/api', function(req, res){
res.setHeader("Access-Control-Allow-Origin", "*");
console.log("body " + JSON.stringify(req.body, null, 2));
var endPoint = req.body.endPoint;
console.log("POST on " + endPoint + " with Data " + (req.body.customer));
});


var port = process.env.PORT;
var ip = process.env.IP
app.listen(port, ip, function () {
console.log('Server listening on ' + ip +':' + port);
});

关于angularjs - 请求不显示带有正文解析器的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com