use*_*214 7 node.js express firebase firebase-realtime-database
在我的主要快递文件中app.js,我设置了Firebase:
var firebase = require("firebase");
firebase.initializeApp({
serviceAccount: "../Wrapper-adfd67bc8c36.json",
databaseURL: "https://wrapper.firebaseio.com"
});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在路由文件中访问它时:
var express = require('express');
var router = express.Router();
router.get('/:id', function(req, res, next) {
functionThatUsesFirebase(req.params.id);
res.send(req.params.id);
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
firebase is not defined.
Run Code Online (Sandbox Code Playgroud)
那么我尝试将Firebase添加到路由文件本身:
var express = require('express');
var router = express.Router();
var firebase = require("firebase");
firebase.initializeApp({
serviceAccount: "../Wrapper-adfd67bc8c36.json",
databaseURL: "https://wrapper.firebaseio.com"
});
router.get('/:id', function(req, res, next) {
functionThatUsesFirebase(req.params.id);
res.send(req.params.id);
});
Run Code Online (Sandbox Code Playgroud)
我收到控制台错误:
Firebase App named '[DEFAULT]' already exists.
Run Code Online (Sandbox Code Playgroud)
如何让所有路由文件都可以访问Firebase?谢谢!
在Node中,所有模块都是"Singletons",在Node.js文档中也称为模块缓存.如果你打电话给initializeApp()你一次app.js,然后需要firebase在你的路由器再次,你的路由器firebase实际上将拥有相同的全局设置为firebase你的app.js.这就是你收到错误的原因Firebase App name '[DEFAULT]' already exists.
一旦您打电话initializeApp(),您的代码中的任何其他地方都不app.js需要进行后续调用initializeApp().无论何时何地您需要与firebase进行交互require('firebase')并使用它.
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |