错误:handles与nuxtjs在express中无法正常工作

错误:handles与nuxtjs在express中无法正常工作,express,nuxt.js,Express,Nuxt.js,我在expressjs中使用Nuxtjs作为中间件,在处理ExpressServer部件中的错误时遇到问题 当浏览器转到“localhost:3000”时,它将抛出res。status不是函数错误。当我对代码块进行注释时,除了无法处理未捕获的服务器错误外,一切都很好 有什么想法吗 import dotenv from 'dotenv' dotenv.config({ silent: process.env.NODE_ENV === 'production', path: 'server/.env

我在expressjs中使用Nuxtjs作为中间件,在处理ExpressServer部件中的错误时遇到问题

当浏览器转到“localhost:3000”时,它将抛出res。status不是函数错误。当我对代码块进行注释时,除了无法处理未捕获的服务器错误外,一切都很好

有什么想法吗

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()

在没有亲自测试这段代码的情况下,我的自定义错误处理程序也遇到了类似的问题,并意识到我删除了下一个参数,但它失败了。不能说它会解决这个问题,因为你得到了一个关于res的错误。我读了几遍这个页面,注意到我犯了一些错误,因为我使用的是异步函数

如果您仔细查看,可能会提供一些帮助,但更具体地说,我对next的评论可以在“编写错误处理程序”标题下找到

我想说它可能是箭头函数,但我不明白为什么这会打破这里的逻辑