【问题标题】:How to run Nuxt2 serverMiddleware with pm2如何使用 pm2 运行 Nuxt2 serverMiddleware
【发布时间】:2022-11-11 09:37:06
【问题描述】:

我有一个简单的 Nuxt ssr 应用程序,其中的 serverMidlleware 处理一个 api 端点 (/api/contact)。要部署我正在使用 pm2 的应用程序。 在开发和生产中运行应用程序(本地没有 pm2)一切正常。使用 pm2 将其部署在基本的 ubuntu 服务器上,api 端点变得无法访问(404 未找到)。

正如here 所指出的,中间件不包含在.nuxt 构建中。所以,我确保也复制了api 目录(我的中间件所在的位置)。

对于 pm2 部署,ecosystem.config.js:

module.exports = {
  apps: [
    {
      name: 'App',
      exec_mode: 'cluster',
      instances: 'max',
      script: './node_modules/nuxt/bin/nuxt.js',
      args: 'start'
    }
  ]
}

nuxt.config.js 内部:

serverMiddleware: [
  { path: '/api/contact', handler: '~/api/contact.js' }
]

由于只有通过 pm2 部署失败,我假设其他文件不感兴趣。我假设这必须与某种 pm2 配置相关才能找到 api 文件夹。

【问题讨论】:

  • 正如my answer 中所述,您确实需要复制整个内容。不确定apps 在做什么,但您不能在部署应用程序后运行 shell 命令吗?因为您可以访问 VPS。
  • 谢谢,复制“整个事情”有效,不确定我错过了哪个文件

标签: vue.js nuxt.js web-deployment server-side-rendering pm2


【解决方案1】:

关注my answer here 也解决了这里的问题。

您的 nuxt.config.js 文件中可能缺少某些内容

export default {
  ssr: true,
  target: 'server',
  modules: [
    '@nuxtjs/axios',
  ],
  serverMiddleware: [
    { path: '/api', handler: '~/server-middleware/rest.js' },
  ],
}

【讨论】:

    猜你喜欢
    • 2019-08-13
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2023-04-08
    • 2021-06-17
    • 2023-03-10
    相关资源
    最近更新 更多