繁体   English   中英

express.Router() 删除未找到

[英]express.Router() delete not found

我正在创建一个 restAPI,但我没有让 express.Router () 删除方法工作

我正在寻找答案,但我找到的所有答案都与我所做的一致。

只有删除方法不起作用,其他都可以。

路由文件:

const express = require('express')
const CustumerController = require('../controllers/CustumerController')
const router = express.Router()

router.get('/customers', CustumerController.index)
router.get('/customers/:id', CustumerController.show)
router.post('/customers', CustumerController.store)
router.delete('/customers/:id', CustumerController.destroy)

module.exports = router

客户控制器.js

async destroy(req, res) {
  const { id } = req.params
  const result = await CustomerRepository.delete(req)
  res.json(result)
}

CustomerRepository.js

async destroy(id) {
  const clause = {
    where: { id }
  }

  try {
    return await Customers.destroy(clause)
  } catch (err) {
    return {
      statusCode: status.INTERNAL_SERVER_ERROR,
      message: status.classes['5XX_MESSAGE'],
      error: err
    }
  }
}

删除错误示例:

在此处输入图像描述

成功的例子,在 get

在此处输入图像描述

我试过,在 controller 上,用一个简单的 object 来触发 res.json (),只是为了测试,但它不起作用,请求还不够。

问题似乎真的出在 express.Router 的 delete 方法中

我感谢你的帮助

路由器编程良好 问题在端点响应中 我建议使用try catch详细分析错误

您的代码中一切正常,无需更改任何内容。 调试它,首先尝试在删除 api 时返回static 响应,而不是从数据库中删除数据。 然后只有你会了解这个问题。

您的get请求也不应该起作用! 您在此行中命名了 controller CostumerController

const CostumerController = require('../controllers/CostumerController')

并使用CustumerController 我使用了您的代码,一切正常。

index.js

const express = require('express');
const router = require('./router');
const app = express();

app.use(router);

app.listen(8000, () => {
  console.log('Server started.')
});

CustomerController.js

module.exports = {
  destroy: (req, res) => {
    res.status(200).send('destroy');
  },
  index: (req, res) => {
    res.status(200).send('index');
  },
  show: (req, res) => {
    res.status(200).send('show');
  },
  store: (req, res) => {
    res.status(200).send('store');
  }
}

router.js

const express = require('express')
const CustomerController = require('./CustomerController')
const router = express.Router()

router.get('/customers', CustomerController.index)
router.get('/customers/:id', CustomerController.show)
router.post('/customers', CustomerController.store)
router.delete('/customers/:id', CustomerController.destroy)

module.exports = router;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM