如何使用pm2运行Nuxt2 serverMiddleware



我有一个简单的next ssr应用程序与servermiddleware处理一个api端点(/api/contact)。要部署应用程序,我使用pm2。在开发和生产中运行应用程序(在本地没有pm2),一切都很好。使用pm2将其部署到基本的ubuntu服务器上,api端点变得不可达(404 not found)。

正如这里指出的,中间件不包括在.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'
}
]
}

and insidenuxt.config.js:

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

由于只有通过pm2的部署失败,我认为其他文件不重要。我认为这必须与某种pm2配置有关,以找到api文件夹。

根据我的回答,这里的问题也解决了。

你可能在nuxt.config.js文件中丢失了一些东西

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