启动Express节点时出现以下错误:
openssl配置失败:错误:02001003:系统库:fopen:否这样 处理
该节点仍会启动。 我不尝试使用SSL。
以下是起始代码:
...
app = Express;
app.set('port', process.env.PORT || config.port);
try {
var server = app.listen(app.get('port'), function () {
console.log('Express server listening on port ' + server.address().address + ':' + server.address().port);
});
} catch (e) {
log.fatal(e);
}
仅在部署服务器上发生。在开发人员计算机中运行可以正常运行。
答案 0 :(得分:9)
问题是Express会寻找环境变量OPENSSL_CONF
来查找SSL配置文件。
变量OPENSSL_CONF
指向驱动器上的不存在位置。
我从系统中删除,消息消失了。
注意:必须使用新的控制台来启动节点,以便不存在环境变量OPENSSL_CONF
。或在当前控制台上简单删除。
github上的其他信息
答案 1 :(得分:1)
答案 2 :(得分:0)
删除全局环境变量OPENSSL_CONF(以前的故障排除过程中遗留下来的问题)解决了我的问题。
在Windows上运行,您可以尝试:
在本地命令窗口中设置环境并验证问题:
set OPENSSL_CONF=c:\dummy
npm -v
=>您现在可能会看到此ssl错误消息
删除环境并确认问题已消失:
set OPENSSL_CONF=
npm -v
=>没有ssl错误消息