【问题标题】:Include api routes in a nuxt and express app (using create-nuxt-app)在 nuxt 和 express 应用程序中包含 api 路由(使用 create-nuxt-app)
【发布时间】:2019-04-14 17:25:15
【问题描述】:

我使用 create-nuxt-app npm 命令创建了一个应用,并获得了这个 server/index.js 文件。

const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')
const app = express()
const host = process.env.HOST || '127.0.0.1'
const port = process.env.PORT || 3000

app.set('port', port)

// Import and Set Nuxt.js options
let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

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

我还有一个包含我的 api 路由的 js 文件。

const { Router } = require('express')
const router = Router()
router.get('/route1', function(req, res){
   return 'Hello world';
}
module.exports = router

我正在寻找一种方法来为路由添加前缀“api”,而不是将其逐个添加到每个路由(如果可能)以及首先包含路由。

【问题讨论】:

    标签: express nuxt.js


    【解决方案1】:

    你可以添加 在 server/index.js 文件中。

    app.use(nuxt.render)
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

    根据文档:

    https://nuxtjs.org/api/configuration-servermiddleware/

    https://nuxtjs.org/examples/auth-routes

    API 路由适用于nuxt.config.js

    serverMiddleware: [
        '~/api'
    ],
    

    它对我有用。

    【讨论】:

      【解决方案3】:

      只需将您的 api 路由应用为带有前缀路径的中间件

      import api from './api';
      app.use('/api', api);
      

      参考:https://expressjs.com/en/api.html#path-examples

      【讨论】:

        猜你喜欢
        • 2018-11-12
        • 2019-09-01
        • 1970-01-01
        • 2018-12-13
        • 2020-05-19
        • 2019-01-06
        • 2019-09-05
        • 2020-10-18
        • 2020-05-13
        相关资源
        最近更新 更多