我在Heroku上托管了一个NodeJs应用程序。作为身份验证的一部分,我想在用户访问/ login路由时打开浏览器窗口。
我为此使用Node的“开放”库,并将URL作为参数传递。尽管这在本地计算机上有效,并且Node托管在Heroku上,但打开了带有该URL的浏览器窗口,但是却没有。
因此,我想了解Heroku平台在执行此类操作时是否存在任何限制,以及应该采取哪些其他步骤来解决此问题。
带有打开程序库的示例代码。
var opener = require("opener");
url = 'https://exampleapp.herokuapp.com';
opener(url);
return;
答案 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()
参数将在用户浏览器中打开一个新标签。