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