代码之家  ›  专栏  ›  技术社区  ›  user3650602

需求。身体项目未定义-删除request express js

  •  0
  • user3650602  · 技术社区  · 8 年前

    我是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;
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   Giannis Mp    8 年前

    首先删除该行 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);
            }
        });
    }
    

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

    推荐文章