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