拥有一个使用mongoose在本地运行的node.js应用程序来处理mlab的mongodb。没问题
我将代码发布到github,然后告诉Azure将我的应用程序托管为Webapp,这是我做过很多次而没有猫鼬的事情。
据我所知,Azure会代表我在我的package.json文件中安装一个npm,因为它将我的应用程序安装到其中一个Web服务器主机中。
如果我在users.js路由中注释掉以下几行:
//var mongoose = require('mongoose');
//var ObjectID = require('mongodb').ObjectID;
一切正常,Azure运行我的应用程序。
如果我不将其注释掉,则会在Azure日志中记录以下错误:
npm http GET https://registry.npmjs.org/mongoose
npm ERR! Error: SSL Error: CERT_UNTRUSTED
为了解决此问题,我在package.json文件中添加了: [1]强迫azure使用此版本的节点
"engines": {
"node": "0.8.x"
},
[2]试图强制使用当前版本
"mongoose": "^5.3.11",
[3]试图强迫谈判者使用该版本,因为GitHub抱怨谈判者存在安全问题
"negotiator": ">=0.6.1",
我真的很想继续让Azure使用GitHub运行我的Web应用程序,而不是进入Azure命令行来安装我的位,所以我对安装没有太多控制。猫鼬有些不好。
谢谢
答案 0 :(得分:0)
您可以尝试的一件事是更新到较新证书的定义。 此版本的 config-defs.js 可以解决问题(通常位于 / deps / npm / lib / utils 下)。
您可能还需要按照 here
所述使用其他证书更新该文件。希望有帮助!
答案 1 :(得分:0)
Neil Lunn修复了问题,谢谢。我在运行节点v10.x.x时遇到问题,并尝试回落到V8.x.x来解决v10中的重大更改,然后搞砸了V8的名称。 “ node”:“ 0.8.x”不能获得V8,8.10.0可以,并且一切都很好。