我是web开发的初学者,在向本地REST API(使用Express Js编写)发送删除请求时,检索参数时遇到问题。我已经在google上搜索了这个问题,但大多数问题都是通过使用主体解析器解决的。
当我返回并打印请求时。车身返回控制台,显示为:
{data: "{"Customer":"1"}"}
哪个看起来正确? 但当我尝试检索时
req.body.Customer;
在路线中。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); } }); }
路线。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);
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); } }); }
现在,您正在创建一个新的对象数据,并将之前创建的对象指定给它。