繁体   English   中英

如何将Nuxt页面呈现为快速路线的响应

[英]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实际上被认为是包含上下文对象reqres性质,根据该文档 我不知道您实际上应该如何在响应中转发数据,但这似乎不是合适的方法。
  • 我什至不确定renderRoute应以这种方式使用renderRoute 在文档中,它是在Nuxt Builder对象的重新构造中使用的,我怀疑这可能是一次性操作,而不是每次发出请求时都会反复调用的对象。 我不确定哪种方法,但最好检查一下。 可能需要查看nuxt-express页面以获取一些有关如何在渲染过程中渲染路线和传递数据的示例。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM