NodeJs / Express Puppeteer запускает локальное представление - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть приложение NodeJs / Express, в котором я хотел бы открыть новое окно браузера и отобразить в нем локальный e js вид. Я пытаюсь сделать это, используя 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.e js

Заранее благодарим за любые рекомендации.

1 Ответ

0 голосов
/ 26 февраля 2020

Вместо:

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.

...