我碰到这个错误信息试图部署火力节点应用到虚拟专用服务器时传来:火力地堡的NodeJS的ReferenceError:承诺没有定义
/home/.../Backend/node_modules/firebase-admin/lib/firebase-namespace.js:195
this.Promise = Promise;
^
ReferenceError: Promise is not defined
at new FirebaseNamespace (/home/.../Backend/node_modules/firebase-admin/lib/firebase-namespace.js:195:24)
at Object.<anonymous> (/home/.../Backend/node_modules/firebase-admin/lib/default-namespace.js:5:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/.../Backend/node_modules/firebase-admin/lib/index.js:4:16)
at Module._compile (module.js:456:26)
在我的本地环境,这个节点的应用程序运行没有任何问题。两种环境都具有相同的节点,npm和“firebase-admin”模块版本。
因此,我遵循here的建议并修改了虚拟服务器上的“firebase-admin”模块文件。通过手动添加
var Promise = require('es6-promise').Promise;
我可以摆脱一些模块源文件,我可以摆脱错误消息。之后,无法从Firebase数据库中读取任何内容。
我的代码段
firebaseDatabase.ref("...").once('value').then(function(snapshot){
....
});
与我的当地环境没有问题读取火力的内容,永远不会有它的“然后”被称为虚拟服务器上。
我在做什么错?任何建议表示赞赏。
npm version:3.10.0;节点版本:7.1.0; v8版本:5.4.500.36; firebase-admin版本:4.0.3; –