Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了全局访问Node.JS / express中的Firebase大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的主要快递文件app.js中,我设置了Firebase:
var firebase = require("firebase");
firebase.initializeApp({
  serviceAccount: "../Wrapper-adfd67bc8c36.json",databaseURL: "https://wrapper.firebaseio.com"
});

但是当我尝试在路由文件中访问它时:

var express = require('express');
var router = express.Router();

router.get('/:id',function(req,res,next) {
    functionThatUsesFirebase(req.params.id);

    res.send(req.params.id);
});

我收到错误

firebase is not defined.

那么我尝试将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',next) {
    functionThatUsesFirebase(req.params.id);

    res.send(req.params.id);
});

我收到控制台错误

Firebase App named '[DEFAULT]' already exists.

如何让所有路由文件都可以访问Firebase?谢谢!

解决方法

在Node,all modules are “Singletons”中,Node.js文档中也称为 Module Caching.如果您在app.js中调用initializeApp()一次,然后在路由器中再次需要firebase,则路由器的firebase实际上将具有与app.js中的firebase相同的全局设置.这就是为什么您收到错误的原因Firebase应用程序名称'[DEFAULT]’已经存在.

在app.js中调用initializeApp()之后,不需要在代码中的任何其他位置对initializeApp()进行后续调用.无论何时何地您需要与firebase进行交互只需要(‘firebase’)并使用它.

大佬总结

以上是大佬教程为你收集整理的全局访问Node.JS / express中的Firebase全部内容,希望文章能够帮你解决全局访问Node.JS / express中的Firebase所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。