обработчики ошибок не работают должным образом в экспрессе вместе с nuxtjs - PullRequest
0 голосов
/ 25 января 2019

Я использую Nuxtjs в качестве промежуточного программного обеспечения в expressjs, и у меня возникают проблемы с обработкой ошибок в серверной части Express.

Когда браузер переходит на «localhost: 3000», он выдает ошибку res.status is not a function. когда я комментирую этот блок кода, все хорошо, ожидаю, что я не смогу справиться с необработанными ошибками сервера ...

Есть идеи?

import dotenv from 'dotenv'
dotenv.config({ silent: process.env.NODE_ENV === 'production', path: 'server/.env' })

import express from 'express'
import { ready } from 'consola'
import { Nuxt, Builder } from 'nuxt'
import cors from 'cors'
import { json, urlencoded } from 'body-parser'
import cookieParser from 'cookie-parser'
import passport from 'passport'
import './utils/auth'
import router from './routes'

const app = express()

app.use(json({ limit: '50mb' }))
app.use(urlencoded({ limit: '50mb', extended: true }))
app.use(cookieParser())
app.use(cors())
app.use(passport.initialize())

app.use('/api', router)
app.use('/api/*', (req, res) => {
    res.status(404).end()
})

// error handlers
// it is problematic
// app.use((err, req, res) => {
//     res.status(err.status || 500).end()
// })

let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')

async function start() {
    const nuxt = new Nuxt(config)

    if (config.dev) {
        const builder = new Builder(nuxt)
        await builder.build()
    }

    app.use(nuxt.render)

    const host = process.env.HOST || '127.0.0.1'
    const port = process.env.PORT || 3000

    app.set('port', port)
    app.listen(port, host)
    ready({
        message: `Server listening on http://${host}:${port}`,
        badge: true,
    })
}
start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...