【发布时间】:2021-06-27 11:09:07
【问题描述】:
我正在处理一个个人项目,并试图了解在调用 populateTransactions() 后阻止我的 Node JS 进程终止的进程逻辑。
我认为这是因为我需要关闭数据库(我不完全清楚为什么),但是当我这样做时,进程终止但模型的 save() 函数没有完成并且数据库没有t写对了。
当我让脚本挂起时,它最终会正确填充数据库,但不会终止。
console.log("This script populates the Transaction collection so that we have some sample data for Issue #31: Uninspected Transactions Component");
let Transaction = require('./models/transaction');
let User = require('./models/user');
let mongoose = require('mongoose');
// let mongoDB = 'mongodb+srv://<username>:<password>@cluster0.dsqmg.mongodb.net/<collection-name>?retryWrites=true&w=majority';
mongoose.connect(mongoDB, {useNewUrlParser: true, useUnifiedTopology: true});
let db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
async function createTransaction(inspected, recurring, amount, note, startDateString, postDateString) {
let userQuery = await User.find({});
userQuery = userQuery[0];
let startDate = new Date(startDateString);
let postDate = new Date(postDateString);
let transaction = new Transaction({
user: userQuery._id,
inspected: inspected,
recurring: recurring,
amount: amount,
note: note,
startDate: startDate,
postDate: postDate
});
await transaction.save((err) => {
if(err){
console.log(err);
}
});
};
async function populateTransactions(){
await createTransaction(count,false, false, 563, "Numero Uno", "2012-12-05", "2012-12-06");
};
populateTransactions();
【问题讨论】:
标签: javascript node.js mongodb mongoose async-await