Javascript Nuxt-服务器中间件在生产环境中不工作

Javascript Nuxt-服务器中间件在生产环境中不工作,javascript,nuxt.js,Javascript,Nuxt.js,我使用Nuxt构建了一个应用程序,并创建了用于处理电子邮件发送的简单服务器中间件。一切都在开发中工作,但在生产中,我有404错误从该端点。有人知道如何将服务器中间件包含到构建文件中吗 服务器中间件: const bodyParser = require('body-parser') const app = require('express')() app.use(bodyParser.json()) app.post('/', (req, res) => { // Some code

我使用Nuxt构建了一个应用程序,并创建了用于处理电子邮件发送的简单服务器中间件。一切都在开发中工作,但在生产中,我有404错误从该端点。有人知道如何将服务器中间件包含到构建文件中吗

服务器中间件:

const bodyParser = require('body-parser')
const app = require('express')()

app.use(bodyParser.json())

app.post('/', (req, res) => {
// Some code here
})

module.exports = app
Nuxt.config.js

serverMiddleware: [
    { path: '/contact/send', handler: '~/server-middleware/email.js' }
  ],
答复如下:

此解决方案似乎有效:

//nuxt.config.js
服务器中间件:[
“~/api/index.js”,
]
//api/index.js
const app=require('express')()
module.exports={path:'/api',处理程序:app}
app.get('/say/:word',(req,res)=>{
res.json(请求参数)
})

我找到了关于github问题的答案:下一次回购:

这是正确的-服务器中间件不是编译的,也不是应用程序的一部分 网页包构建,因此您应该确保将它们分别复制到 生产。(以及确保他们有任何依赖关系 已在生产中安装。)

(注意,这将随着Nuxt 3而改变-您将能够有一个 包含服务器中间件的单构建服务器。)

发行地点:

你的应用程序是仅作为静态应用还是也使用SSR?我用SSR构建的应用程序看起来不错。您没有忘记任何env变量或类似变量吗?我是说,你确定问题是从这里来的吗?也,您的软件包是否作为
依赖项安装在中间件中,而不仅仅是
devdependencies
?是的,我在构建文件夹中没有看到任何字符串“contact/send”:(我可以看到这在构建文件夹中不存在):(我得到了404,这是正确的,因为它不存在):(顺便问一下,您的应用程序托管在哪里?)?你确定它确实有一个用于SSR的节点服务器吗?在开发中,它工作了,但在生产中,我仍然得到了404:/我写了一些get endpoint“/test”,在构建之后,我没有看到任何类似“/test”或“test”的字符串。它没有被构建。是的,这一个也是有缺陷的。从未使用过
serverMiddleware
,这似乎有点棘手。感谢您抽出时间@kissu