簡體   English   中英

在下一個 js 中通過快速路由發送請求時出現錯誤 405

[英]Getting error 405 when sending request on express route in next js

我在 Next js 中的 Express js 上創建路由。 當我在主機上部署並在路由上發送請求時,我收到錯誤 405,但是當我在 localhost 上執行相同操作時,一切正常。

我無法理解這是?

在此處輸入圖像描述

const express = require('express')
const next = require('next')
const bodyParser = require('body-parser')
const PORT = process.env.PORT || 3000
const dev = process.env.NODE_ENV !== 'production' //true false
const nextApp = next({ dev })
const handle = nextApp.getRequestHandler() //part of next config

nextApp.prepare().then(() => {
const app = express()
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const apiRoutes = require("./routes");
app.use('/api', apiRoutes) 
app.get('*', (req,res) => {
    console.log('asdfasdfasdfd')
    return handle(req,res)
})
app.listen(PORT, err => {
    if (err) throw err;
    console.log(`ready at http://localhost:${PORT}`)
})

})

我認為您的快速配置有問題。 你的快遞服務器必須是這樣的:

const express = require('express')
const next = require('next')
const handler = routes.getRequestHandler(app)
const app = next({ dir: '.', dev })

app.prepare().then(() => {
  const server = express()
  server.post('/api', (req, res) => {
    handler(req, res, req.url)
  )
  server.get('*', (req, res) => {
    handler(req, res, req.url)
  })

}

檢查server.getserver.post或其他 http 方法的代碼。

錯誤 405 表明該方法不被允許。

Vercel 無法使用帶有下一個 js 的自定義服務器https://github.com/vercel/next.js/discussions/13306

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM