在Docker中使用'opn'npm模块的未处理诺言拒绝

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Exited with code 3 

我显然遇到这个错误,当我打开使用Docker容器模块的链接。 在将代码放在使用Docker的服务器上之前,我在本地testing了代码。 而且它在我的本地运行良好,不使用Docker。 所以我认为docker工人出了问题,但实际上没有办法找出问题所在。 是否有人曾经使用Docker的“opn”模块?

 app.use('/:encoded_id', function(req, res) { let base58Id = req.params.encoded_id; let id = base58.decode(base58Id) Url.findOne({ _id:id }, function(err, doc) { if (err) console.error(err); if (doc) { opn(doc.long_url[i]); } else res.redirect(config.webhost); }) }); 

退出代码3意味着:

找不到所需的工具。

你说目标是“打开链接”,所以Docker容器可能没有浏览器(或者至less是默认的浏览器)。

如果您确定安装了所需的软件,则可能是configuration问题。 在这种情况下,您可以通过指定应用程序选项来解决这个问题。 但是如果可以的话,尽量避免使用它,因为它依赖于平台,所以会使你的代码更加便于移植。