[英]How to render a Nuxt page as a response from an express route
我的问题是关于如何使用nuxt页面触发类似res.render的东西?
该项目正在利用nuxt-express模板-Nuxt和Expressjs的组合。
我知道nuxt具有: nuxt.render(req,res)和nuxt.renderRoute,但我似乎无法使其正常工作-或找到类似于以下代码块的任何使用示例,在以下代码块中,渲染应在诺言已经解决。
我以前在其他应用程序中使用res.render来处理此问题,例如...
router.get('/', (req,res,next) => {
dothePromise(req.query)
.then(data => {
res.render('pages/auth', {data:data})
}
}
一些可能有用的进一步细节:
这个过程是...
1)我进入第三方系统上的页面,该页面向我的快速端点发出GET请求。
2)在我的应用程序中解决了诺言之后,我需要返回HTML内容,然后将其填充到iframe的第三方系统中。
这是我的第一个stackoverflow问题-如果我缺少任何内容或应该对此问题进行调整,请告诉我。
感谢您的协助!
我不是Nuxt的专家,所以我无法为您提供某些详细信息,但是我可以告诉您,如果您从默认的nuxt-express
项目开始,则可以编辑server/index.js
以包含类似以下:
function doThePromise( query ) {
return new Promise( ( resolve, reject ) => {
setTimeout( () => resolve( "hi" ), 500 );
} );
};
app.get( '/foo', ( req, res, next ) => {
doThePromise( req.query )
.then( data => {
console.log( "rendering", res.renderRoute );
res.renderRoute( 'pages/foo', { data: data } );
} );
} );
然后,如果您在pages/foo.vue
创建一个vue文档并在浏览器中访问/foo
,则promise将在500ms后解析并执行回调,以呈现路由并显示所需的页面。
此解决方案似乎有效,但不能解决两件事:
renderRoute
实际上被认为是包含上下文对象req
和res
性质,根据该文档 。 我不知道您实际上应该如何在响应中转发数据,但这似乎不是合适的方法。 renderRoute
应以这种方式使用renderRoute
。 在文档中,它是在Nuxt Builder
对象的重新构造中使用的,我怀疑这可能是一次性操作,而不是每次发出请求时都会反复调用的对象。 我不确定哪种方法,但最好检查一下。 可能需要查看nuxt-express
页面以获取一些有关如何在渲染过程中渲染路线和传递数据的示例。 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.