【发布时间】:2019-10-09 15:10:33
【问题描述】:
我正在尝试在 Nodejs/express 应用程序中测试 POST 方法。我已连接到 firebase 数据库。 我的问题主要与错误有关。我做错了什么,请问我该如何解决?
这是错误报告:
PS C:\Users\WorkoutApp_v1> 节点 app.js
服务器在端口启动:3000错误:Reference.set 失败:第一个参数在属性“workouts.-Lqkqtcf6e2RED2F_1av.name”中包含未定义
这是带有 POST 方法的锻炼.js 文件。
const express = require('express');
const router = express.Router();
const firebase = require('firebase');
router.get('/add', function(req,res,next) {
res.render('workouts/add');
});
router.post('/add', function(req,res,next) {
var 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);
// alternative implementation of the above 3-lines
firebase.database().ref().child('workouts').push().set(workout);
req.flash('success_msg', 'Workout saved');
res.redirect('/workouts');
});
module.exports = router;
这是 add.ejs 文件。
<form method="post" action="/workouts/add">
<div class="form-group">
<label>Exercise</label>
<input type="text" class="form-control" name="name" placeholder="Workout Name">
<label>Description</label>
<input type="text" class="form-control" name="description" placeholder="Description">
<label>Set</label>
<input type="text" class="form-control" name="sets" placeholder="Number of sets">
<label>RepsTime</label>
<input type="text" class="form-control" name="repsTime" placeholder="Number of repsTime">
</div>
<button type="submit" class="btn btn-default">Submit</button>
<a class="btn btn-danger" href="/workouts">Close</a>
</form>
【问题讨论】:
-
对于节点应用程序,我建议使用 Firebase Admin SDK 而不是客户端库可能会更好。 firebase.google.com/docs/projects/…
-
@DougStevenson 谢谢,但这将如何帮助我解决我遇到的错误?
标签: node.js firebase firebase-realtime-database