首页 > 解决方案 > NodeJs/Express Puppeteer 启动本地视图

问题描述

我有 NodeJs/Express 应用程序,我想在其中打开新的浏览器窗口并将本地 ejs 视图呈现到其中。我正在尝试使用 Puppeteer 来做到这一点。

    const puppeteer = require('puppeteer');
router.post('/new_window', async (req, res) => {
  try {
     const browser = await puppeteer.launch({headless: false});
     const page = await browser.newPage();
     const pageContent = ejs.render('../views/mypage.ejs', {})  
     await page.setContent(pageContent)
     //await page.screenshot({path: 'example.png'});
     // await browser.close();
  } catch (err) {
     res.status(500)
     console.log(err)
     res.send(err.message)
  }
})

在浏览器而不是页面布局中,我得到:

../views/mypage.ejs

提前感谢您的任何指导。

标签: node.jsexpressejspuppeteer

解决方案


代替:

await page.goto(...); // This code is acting like your browser's address bar

尝试

const pageContent = ejs.render('../views/mypage.ejs', {data to populate your .ejs page}) //This is sudo code. Check ejs docs on how to do this 
await page.setContent(pageContent)

上面的代码将允许您在服务器上创建页面。page.setContent(..)您可以加载任何 HTML 字符串。


推荐阅读