首页 > 解决方案 > Node.js DELETE 请求返回错误响应

问题描述

我正在我的 nodejs 服务器上发出 DELETE 请求,但响应是错误的。

当我尝试在我的本地主机服务器上发送 DELETE 请求时,它返回
成功:0,消息:“未找到记录”
但是当我去检查数据库时,参数消失了

index.js

require("dotenv").config();
const express = require("express");
const app = express();
const userRouter = require("./api/users/user.router");
var cors = require('cors');

var corsOptions = {
  origin: "http://localhost:3000"
};

app.use(cors(corsOptions));

app.use(express.json());

app.use("/api/", userRouter);

const port = process.env.PORT || 4000;

app.listen(port, () => {
  console.log("server up and running on PORT :", port);
});

user.router.js

const router = require("express").Router();
const {
  deleteUtenti
} = require("./user.controller");
router.delete("/", deleteUtenti);

module.exports = router;

用户控制器.js

const {
  deleteUtenti
} = require("./user.service");


module.exports = {
  deleteUtenti: (req, res) => {
    const data = req.body;
    deleteUtenti(data, (err, results) => {
      if (err) {
        console.log(err);
        return;
      }
      if (!results) {
        return res.json({
          success: 0,
          message: "Record Not Found"
        });
      }
      return res.json({
        success: 1,
        message: "user deleted successfully"
      });
    });
  }
};

用户服务.js

const pool = require("../../config/database");

module.exports = {
  deleteUtenti: (data, callBack) => {
    pool.query(
      `delete from utenti where email = ?`,
      [data.email],
      (error, results, fields) => {
        if (error) {
          callBack(error);
        }
        return callBack(null, results[0]);
      }
    );
  }
};

是代码问题还是服务器问题?

几天前,我用另一个函数发生了同样的事情,但要解决它就足以在数据库中重新创建表,我尝试做同样的事情但它没有用

标签: node.jspostman

解决方案


我刚刚发现了问题,results[0]user.service.js上没有读取数据库的响应,所以为了做一些测试,我将它更改为results来自数据库的所有响应都出来的地方,我看到我只需要使用受影响的Rows来自数据库的响应,所以我将其更改为results.affectedRows,现在一切正常。


推荐阅读