javascript - req.body.item 未定义 - 删除请求 Express js

标签 javascript jquery node.js ajax rest

我是 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);
        }
    });
}

现在您正在创建一个新的对象数据并将之前创建的对象分配给它。

关于javascript - req.body.item 未定义 - 删除请求 Express js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49096485/

相关文章:

单击 10 次后 JavaScript 弹出窗口无法显示

jquery - 选择样式选择时更改颜色

jquery - Rails 中通过 AJAX RESTful 获取 HTML 部分内容

javascript - ES6导入声明+符号

javascript - 如何设置 React 渲染组件的样式

javascript - 替代 AJAX 异步 : false option for form submit button click event handler

javascript - jquery将数据保存在数组中

javascript - 提交表单后计算所有动态项目的总数,包括复制的项目

javascript - TypeScript - 元素隐式具有 'any' 类型 [...] 在类型上未找到参数类型为 'string' 的索引签名

node.js - 如何正确地对 Joi Schemas 验证进行单元测试?