我碰到這個錯誤信息試圖部署火力節點應用到虛擬專用服務器時傳來:火力地堡的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; –