我是Web开发的初学者,在向本地REST API(使用Express Js编写)发送删除请求时,我无法检索参数。我已经用Google搜索了问题,但大多数都是通过使用body-parser来解决的。
当我返回并将req.body打印回控制台时,它显示为:
{data: "{"Customer":"1"}"}
哪个看起来好像?但是当我尝试检索时
req.body.Customer;
在routes.js文件中,它是未定义的。
我错过了一些非常明显的东西吗?
JQuery函数发出请求
function DeleteItem(){
let data = {
Customer: $customerId.text()
}
data = JSON.stringify(data);
$.ajax({
url: "http://localhost:3000/Customers",
type: 'DELETE',
data: {
data
},
success: function(res) {
console.log(res);
BuildTable();
},
error: function(res) {
console.log(res);
alert(res);
}
});
}
Routes.js
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var appRouter = function(app) {
app.delete("/Customers", function(req, res) {
var customer = req.body.Customer;
console.log(customer);
res.send(req.body);
});
}
module.exports = appRouter;
首先删除行data = JSON.stringify(data);
那么如果您需要客户,您应该写:
req.body.data.Customer;
或者您可以像这样更改您的请求:
function DeleteItem(){
let data = {
Customer: $customerId.text()
}
$.ajax({
url: "http://localhost:3000/Customers",
type: 'DELETE',
data: data,
success: function(res) {
console.log(res);
BuildTable();
},
error: function(res) {
console.log(res);
alert(res);
}
});
}
现在,您正在创建新的对象数据并将之前创建的对象分配给它。