0

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

为此,我正在使用 Node 的“开放”库,并将 URL 作为参数传递。虽然这适用于本地计算机并且 Node 会打开浏览器窗口(使用该 URL),但是当托管在 Heroku 上时它不会。

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

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

带有 opener 库的示例代码。

  var opener = require("opener");

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

  return;
4

1 回答 1

0

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

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

否则,如果您希望使用新页面打开一个新窗口(而不是覆盖它们所在的前一页面),您将需要一个额外的模块来执行此操作,因为 express 不处理浏览器端代码:我推荐Puppeteer使用此示例代码:

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()将在用户浏览器中打开一个新选项卡。

于 2020-07-29T09:25:58.240 回答