Получение ошибки 405 при отправке запроса на express маршрут в следующем js - PullRequest
0 голосов
/ 02 августа 2020

Создаю маршруты на Express js в Next js. Когда я развернулся на хостинге и отправил запрос по маршруту, я получаю ошибку 405, но когда я делаю то же самое на локальном хосте, все в порядке.

Я не могу понять, что это такое?

введите описание изображения здесь

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}`)
})

})

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Vercel не может использовать пользовательский сервер со следующим js https://github.com/vercel/next.js/discussions/13306

0 голосов
/ 02 августа 2020

Я думаю, что ваша express конфигурация имеет проблемы. ваш express сервер должен быть таким:

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 говорит о том, что метод не разрешен .

...