[英]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.