[英]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.get
和server.post
或其他 http 方法的代码。
错误 405 表明该方法不被允许。
Vercel 无法使用带有下一个 js 的自定义服务器https://github.com/vercel/next.js/discussions/13306
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.