簡體   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