[英]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.