无法从节点(托管在heroku上)打开浏览器窗口

时间:2020-07-29 07:07:32

标签: node.js heroku heroku-nodejs

我在Heroku上托管了一个NodeJs应用程序。作为身份验证的一部分,我想在用户访问/ login路由时打开浏览器窗口。

我为此使用Node的“开放”库,并将URL作为参数传递。尽管这在本地计算机上有效,并且Node托管在Heroku上,但打开了带有该URL的浏览器窗口,但是却没有。

因此,我想了解Heroku平台在执行此类操作时是否存在任何限制,以及应该采取哪些其他步骤来解决此问题。

我尝试了openopener库。

带有打开程序库的示例代码。

  var opener = require("opener");

  url = 'https://exampleapp.herokuapp.com';
  opener(url);

  return;

1 个答案:

答案 0 :(得分:0)

要将用户重定向到某个页面(即使在同一页面内)也可以将页面重定向到页面,您可以做一个简单的操作(假设您在Nodejs中使用express):

res.redirect()res.download(),如果您希望用户能够下载项目。

否则,如果您希望用新页面打开新窗口(不覆盖它们所在的上一页),则您将需要一个额外的模块来执行此操作,因为express无法处理浏览器侧代码:我建议{{ 3}},其中包含以下示例代码:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless: false});
  const page = await browser.newPage();
  await page.goto(url);

  await browser.close();
})();

函数{headless: false}中的puppeteer.launch()参数将在用户浏览器中打开一个新标签。