Vue.js 仅为一个页面使用Nuxt进行服务器端渲染
我有一个面板是由vuejs和vuetify开发的,它使用v-router在客户端管理路由,实际上我已经开发了大约70%的面板,由于最终的更改,我必须处理服务器post请求,只从支付页面返回。 我想将NUXT用于SSR,但问题是NUXT忽略了我过去的所有路由,因为它本身没有这些路由。 我的问题是,当我的面板在客户端正常工作时,NUXT只能在服务器请求到客户端后加载一页吗? 我是网络编程新手,我希望我问的问题是正确的。无论如何,谢谢你的帮助 我在pages目录中添加了nossr.vue,但没有index.vue文件(这是该目录中唯一的组件,其余的vue组件都放在components目录中)。 我使用[https://stackoverflow.com/questions/54289615/how-to-read-post-request-parameters-in-nuxtjs][1] 用于自定义中间件和post请求句柄类 以下是postRequestHandle.js:Vue.js 仅为一个页面使用Nuxt进行服务器端渲染,vue.js,nuxt.js,vuetify.js,vue-router,Vue.js,Nuxt.js,Vuetify.js,Vue Router,我有一个面板是由vuejs和vuetify开发的,它使用v-router在客户端管理路由,实际上我已经开发了大约70%的面板,由于最终的更改,我必须处理服务器post请求,只从支付页面返回。 我想将NUXT用于SSR,但问题是NUXT忽略了我过去的所有路由,因为它本身没有这些路由。 我的问题是,当我的面板在客户端正常工作时,NUXT只能在服务器请求到客户端后加载一页吗? 我是网络编程新手,我希望我问的问题是正确的。无论如何,谢谢你的帮助 我在pages目录中添加了nossr.vue,但没有ind
const querystring = require('querystring');
module.exports = function (req, res, next) {
let body = '';
req.on('data', (data) => {
console.log("post request data",data)
body += data;
});
req.on('end', () => {
req.body = querystring.parse(body) || {};
console.log("post request handler",req.body)
next();
});
};
和nuxt.config.js
export default {
devServer: {
host: 'mypanel.test.net',
port: 8080,
disableHostCheck: true,
hotOnly: true,
},
serverMiddleware: [
{ path: '/clickout', handler: './server-middleware/postRequestHandler.js' },
],
layout(context) {
return 'nossr'
}
}
在Nuxt中创建一个名为
nossr.vue
的额外布局,使其第一个元素成为
元素。在除SSR呈现页面外的每个页面上,您都会放置以下内容:
导出默认值{
布局:“nossr”
}
有关Nuxt中布局的更多信息,请查看此您可以通过在服务器中间件中设置
res.spa=true
来禁用除特定页面之外的每个页面的SSR
导出默认功能(req、res、next){
如果(req.url!='/点击退出'){
res.spa=真;
}
next();
}
另请参见:首先,非常感谢您的回复。我编辑了我的问题,我添加了您建议的任何内容,但不幸的是,当我从邮递员发送请求时,我看不到我在postRequestHandle中添加的任何日志。你能告诉我哪里出了问题吗?@Qazali我不太清楚你的意思你的建议让我自己的路由工作了,但我听不到来自服务器的请求。当我收到服务器的post请求时,我想听一下以呈现新组件。你能给我看一下你从哪里检索数据的代码吗?当然。在我添加到问题中的postRequestHandle.js中,我正在等待req.on方法中的服务器响应。谢谢,这为我节省了时间。