Я начинаю проект с node.js и базой данных Firebase в реальном времени, который разрабатывает REST API. Я изо всех сил пытался соединиться и отправить данные в базу данных. Поскольку я намерен использовать структуру MVC, я планирую выделить свою модель, как показано в файле user.js
ниже. Пожалуйста, посмотрите на мой код:
/* user.js */
function User (id, firstName, lastName) {
this.id = id;
this.firstName = firstName;
this.lastName= lastName;
}
const config = {
apiKey: "....",
authDomain: "....",
databaseURL: "....",
projectId: "....",
storageBucket: "....",
messagingSenderId: "...."
}
const firebase = require('firebase');
firebase.initializeApp(config);
const database = firebase.database();
const userRef = database.ref('/users');
User.prototype.post = () => {
console.log(this.id);
//just to test whether the database is connected
//ref: https://firebase.google.com/docs/database/web/offline-capabilities
userRef.on("value", function(snap) {
if (snap.val() === true) {
console.log("connected");
} else {
console.log("not connected");
}
});
userRef.child(this.id).set({
firstName: this.firstName,
lastName: this.lastName
});
}
module.exports = User;
/* index.js */
const User = require('./user')
const express = require('express');
const app = express();
app.use(express.json());
app.get('/users', (req, res) => {
const {id, firstName, lastName} = req.body;
const user = new User (id, firstName, lastName);
//console.log(user);
user.post();
res.send("Success!");
}
const port = 3000;
app.listen(port, () => console.log(`Listening on port ${port}`));
Когда я пытаюсь отправить запрос POST, данные не отправляются в базу данных firebase. Я также получаю "not connected"
за код, который проверяет, подключена ли база данных (см. user.js
). Может кто-нибудь, пожалуйста, подскажите мне, где я иду не так? Любая помощь будет принята с благодарностью.
P.S: Я должен упомянуть, что когда я пытаюсь сделать все в одном index.js
файле, это работает нормально. Однако я хочу выделить модель user.js
.