最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

ReferenceError:未定义firebase

IT培训 admin 6浏览 0评论

ReferenceError:未定义firebase

我正在尝试通过连接到Firebase数据库来在Node.js中测试一个简单的应用程序,但是尽管我已经初始化了Cloud Firebase,但我一直收到此错误。我也做了npm i firebase我缺少什么以及如何解决该错误?

运行应用程序并填写表单并按提交按钮将不会成功。它打印出以下错误。这是完整的错误:

PS C:\ Users \ WorkoutApp_v1>节点app.js警告,缺少FIREBASE_CONFIG和GCLOUD_PROJECT环境变量。初始化firebase-admin将失败服务器在以下端口上启动:3000ReferenceError:未定义firebase在C:\ Users \ WorkoutApp_v1 \ routes \ workouts.js:22:19在Layer.handle上[作为handle_request](C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ layer.js:95:5)在下一个(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ route.js:137:13)在Route.dispatch(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ route.js:112:3)在Layer.handle上[作为handle_request](C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ layer.js:95:5)在C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:281:22在Function.process_params(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:335:12)在下一个(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:275:10)在Function.handle(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:174:3)在路由器上(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:47:12)POST /锻炼/添加500 27.533毫秒-1420

这是我的execution.js文件

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

router.get('/add', function(req,res,next) {
    res.render('workouts/add');
});

router.post('/add', function(req,res,next) {
    const workout = {
        name: req.body.Name,
        discription: req.body.Discription,
        set: req.body.Set,
        RepsTime: req.body.RepsTime
    }
    // console.log(workout);
    // return;

    const fbRef = firebase.database().ref();
    var dbRef = fbRef.child('workouts');
    dbRef.push().set(workout);

    req.flash('success_msg', 'Workout saved');
    res.redirect('/workouts');
});

module.exports = router;

这是我的app.js文件

const express = require('express');
const path = require('path');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const session = require('express-session');
const { check, validationResult } = require('express-validator');
const flash = require('connect-flash');

const firebase = require('firebase');
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();


var firebaseConfig = {
  apiKey: "AIzaSyC9xvJUIlgoWkS0H4Z3nQ5AXKN2y_Nnt7U",
  authDomain: "workout-8g855.firebaseapp",
  databaseURL: "",
  projectId: "workout-8g855",
  storageBucket: "workout-8g855.appspot",
  messagingSenderId: "422111087011",
  appId: "1:422111087011:web:cd6252c0a00c26428a604c",
  measurementId: "G-G3L6FN0J4F"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// const serviceAccount = require('./serviceAccountKey');
//admin.initializeApp(functions.config().firebase);
// admin.initializeApp({
//     credential: admin.credential.cert(serviceAccount)
// });


// Route Files
const routes = require('./routes/index');
const workouts = require('./routes/workouts');

// Init App
const app = express();

// View Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// Logger
app.use(logger('dev'));

// Body Parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

// Handle Sessions
app.use(session({
  secret:'secret',
  saveUninitialized: true,
  resave: true
}));

app.post('/user', [
  // username must be an email
  check('username').isEmail(),
  // password must be at least 5 chars long
  check('password').isLength({ min: 5 })
], (req, res) => {
  // Finds the validation errors in this request and wraps them in an object with handy functions
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  User.create({
    username: req.body.username,
    password: req.body.password
  }).then(user => res.json(user));
});


// Static Folder
app.use(express.static(path.join(__dirname, 'public')));

// Connect Flash
app.use(flash());

// Global Vars
app.use(function (req, res, next) {
  res.locals.success_msg = req.flash('success_msg');
  res.locals.error_msg = req.flash('error_msg');
  res.locals.error = req.flash('error');
  next();
});

// Routes
app.use('/', routes);
app.use('/workouts', workouts);

// Set Port
app.set('port', (process.env.PORT || 3000));

// Run Server
app.listen(app.get('port'), function(){
  console.log('Server started on port: '+app.get('port'));
});
回答如下:

在execution.js中

您需要添加

const firebase = require('firebase');

您在下一行中称呼它

const fbRef = firebase.database().ref();

ReferenceError:未定义firebase

我正在尝试通过连接到Firebase数据库来在Node.js中测试一个简单的应用程序,但是尽管我已经初始化了Cloud Firebase,但我一直收到此错误。我也做了npm i firebase我缺少什么以及如何解决该错误?

运行应用程序并填写表单并按提交按钮将不会成功。它打印出以下错误。这是完整的错误:

PS C:\ Users \ WorkoutApp_v1>节点app.js警告,缺少FIREBASE_CONFIG和GCLOUD_PROJECT环境变量。初始化firebase-admin将失败服务器在以下端口上启动:3000ReferenceError:未定义firebase在C:\ Users \ WorkoutApp_v1 \ routes \ workouts.js:22:19在Layer.handle上[作为handle_request](C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ layer.js:95:5)在下一个(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ route.js:137:13)在Route.dispatch(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ route.js:112:3)在Layer.handle上[作为handle_request](C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ layer.js:95:5)在C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:281:22在Function.process_params(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:335:12)在下一个(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:275:10)在Function.handle(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:174:3)在路由器上(C:\ Users \ WorkoutApp_v1 \ node_modules \ express \ lib \ router \ index.js:47:12)POST /锻炼/添加500 27.533毫秒-1420

这是我的execution.js文件

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

router.get('/add', function(req,res,next) {
    res.render('workouts/add');
});

router.post('/add', function(req,res,next) {
    const workout = {
        name: req.body.Name,
        discription: req.body.Discription,
        set: req.body.Set,
        RepsTime: req.body.RepsTime
    }
    // console.log(workout);
    // return;

    const fbRef = firebase.database().ref();
    var dbRef = fbRef.child('workouts');
    dbRef.push().set(workout);

    req.flash('success_msg', 'Workout saved');
    res.redirect('/workouts');
});

module.exports = router;

这是我的app.js文件

const express = require('express');
const path = require('path');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const session = require('express-session');
const { check, validationResult } = require('express-validator');
const flash = require('connect-flash');

const firebase = require('firebase');
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();


var firebaseConfig = {
  apiKey: "AIzaSyC9xvJUIlgoWkS0H4Z3nQ5AXKN2y_Nnt7U",
  authDomain: "workout-8g855.firebaseapp",
  databaseURL: "",
  projectId: "workout-8g855",
  storageBucket: "workout-8g855.appspot",
  messagingSenderId: "422111087011",
  appId: "1:422111087011:web:cd6252c0a00c26428a604c",
  measurementId: "G-G3L6FN0J4F"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// const serviceAccount = require('./serviceAccountKey');
//admin.initializeApp(functions.config().firebase);
// admin.initializeApp({
//     credential: admin.credential.cert(serviceAccount)
// });


// Route Files
const routes = require('./routes/index');
const workouts = require('./routes/workouts');

// Init App
const app = express();

// View Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// Logger
app.use(logger('dev'));

// Body Parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

// Handle Sessions
app.use(session({
  secret:'secret',
  saveUninitialized: true,
  resave: true
}));

app.post('/user', [
  // username must be an email
  check('username').isEmail(),
  // password must be at least 5 chars long
  check('password').isLength({ min: 5 })
], (req, res) => {
  // Finds the validation errors in this request and wraps them in an object with handy functions
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  User.create({
    username: req.body.username,
    password: req.body.password
  }).then(user => res.json(user));
});


// Static Folder
app.use(express.static(path.join(__dirname, 'public')));

// Connect Flash
app.use(flash());

// Global Vars
app.use(function (req, res, next) {
  res.locals.success_msg = req.flash('success_msg');
  res.locals.error_msg = req.flash('error_msg');
  res.locals.error = req.flash('error');
  next();
});

// Routes
app.use('/', routes);
app.use('/workouts', workouts);

// Set Port
app.set('port', (process.env.PORT || 3000));

// Run Server
app.listen(app.get('port'), function(){
  console.log('Server started on port: '+app.get('port'));
});
回答如下:

在execution.js中

您需要添加

const firebase = require('firebase');

您在下一行中称呼它

const fbRef = firebase.database().ref();

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论