Я пытаюсь передать данные из моего сервера app.js в файл базы данных, чтобы сохранить их в атласе MongoDB.
Я вижу, в чем проблема, я, честно говоря, просто не уверенкак это исправить?Проблема, кажется, состоит из двух частей.
1.) Я передаю функцию в .insertOne, а не объект, это приводит к ошибке обещания.Когда я пытаюсь что-то изменить в функции userDataFinal, я начинаю сталкиваться с ошибками области видимости и вещами, которые не определены.Я не совсем уверен, как это исправить.
2.) Мой код пытается создать новый документ, как только он запускается, потому что db.collection ('User'). InsertOne (userDataFinal);находится в функции обратного вызова .connect.
Мне нужно, чтобы этот код запускался только тогда, когда на стороне клиента был сделан запрос на размещение.
соответствующий код сервера app.js
const base = require('./base.js');
app.post('/',(req, res)=>{
var userName = req.body;
base.userDataFinal(userName);
res.render('index');
});
Соответствующий код базы данных base.js
var userDataFinal = function getUserName(user){
console.log(user);
}
module.exports = {userDataFinal};
////////////////////////////////////////////////////////////////////////
// connects to the database
MongoClient.connect(URL, {useNewUrlParser: true}, (error, client)=>{
if(error){
return console.log('Could not connect to the database');
}
// creates a new collection
const db = client.db(database);
// adds a document to the designated collection
db.collection('User').insertOne(userDataFinal);
console.log('Database is connected...')
});