我正在使用集成的REST API服务器开发SSR Nuxt.js应用。
为此,我将/api
端点添加到了Nuxt server.js
代码中,如下所示
const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')
const app = express()
// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'
// MY REST API ENDPOINT (It's the right approach?)
const routesApi = require('./api/routes')
app.use('/api', routesApi)
async function start() {
// Init Nuxt.js
const nuxt = new Nuxt(config)
const { host, port } = nuxt.options.server
await nuxt.ready()
// Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
}
// Give nuxt middleware to express
app.use(nuxt.render)
// Listen the server
app.listen(port, host)
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
})
}
start()
我没有找到与此方法相关的示例。
我需要一些帮助,以了解这是否正确。
谢谢您的支持。
serverMiddleware
添加一些糖:// nuxt.config.js
export default {
...
serverMiddleware: [
'/api': '~/api/index.js'
],
...
}
// api/index.js
export default function (req, res, next) {
... // Well, here comes nothing
next()
}
但是大型API在单独的服务器上可以很好地扩展,这也是需要考虑的分离问题。 Nuxt可以更好地用作通用的应用程序渲染中间件,但API甚至可以使用另一种语言(后端)来编写。为了克服CORS的问题,您需要按预期将/api
放在同一域中,因此使用Nuxt proxy-module会更容易。