无法从节点(位于heroku上)打开浏览器窗口



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

我正在使用Node的";打开";库,并将URL作为参数传递。虽然这在本地机器上有效,Node会打开浏览器窗口(使用该URL(,但在Heroku上托管时不会。

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

我尝试过开放式和开放式库。

带有开启器库的示例代码。

var opener = require("opener");
url = 'https://exampleapp.herokuapp.com';
opener(url);
return;

要将用户重定向到某个页面之后的某个页面,甚至在同一页面内,您可以做一个简单的操作(假设您使用的是带有Nodejs的express(:

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

否则,如果你想用新页面打开一个新窗口(而不是覆盖上一个页面(,你需要一个额外的模块来完成,因为express不处理浏览器端代码:我建议Puppeter使用以下示例代码:

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

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

相关内容

最新更新