在开发模式下测试时,一切正常,所有 axios 请求都工作。构建后(npm run build && npm run start),应用程序启动并运行,但没有 API 请求。在控制台中,我捕获 _//localhost:3000/api/auth/generateKey 写入 NOT FOUND 404
客户:
import axios from 'axios'
axios.get('api/auth/generateKey')
后端 - app.js
const express = require('express')
const app = express()
const info = require('./routes/auth')
const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
})
)
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE,
OPTIONS')
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With,
Content-Type, Content-Length, x-access-token')
if (req.method === 'OPTIONS') {
res.sendStatus(200)
} else {
next()
}
})
app.use('/api/auth', auth({ express }))
module.exports = app
后端索引.js
const { loadNuxt, build } = require('nuxt')
const app = require('./app')
const port = process.env.PORT || 3000
const host = process.env.HOST || 'localhost'
const dev = process.env.NODE_ENV !== 'production'
async function start() {
const nuxt = await loadNuxt(dev ? 'dev' : 'start')
app.use(nuxt.render)
if (dev) {
build(nuxt)
}
app.listen(port, host, function() {
console.log(`Server listening on http://${host}:${port}`)
})
}
start()
nuxt.config.js
...
axios: {
baseURL: '/'
},
...
更新:
即使您使用输出 hello world 添加常规路由,它也不起作用,但在开发模式下一切正常。
app.get('/test', (req, res) => {
res.status(200).send('Hello world!')
})