我试图通过我运行npm run
的脚本(JS)来填充我的MongoDB数据库。
const mongoose = require('mongoose')
const dbConf = require('../config/database.js')
const User = require('../app/models/user.js')
const Account = require('../app/models/account.js')
mongoose.connect(dbConf.url, { useMongoClient: true })
mongoose.Promise = global.Promise
const users = [
{
_id: "58c039018060197ca0b52d4c",
email: "user1@example.com",
password: "foo",
balance_cents: 100
},
{
_id: "58c03ada8060197ca0b52d52",
email: "user2@example.com",
password: "foo",
balance_cents: 50000
}
]
const accounts = [
{
name: "Postbank",
iban: "1232423423",
swift: "2444444"
},
{
name: "DKB",
iban: "1234923423",
swift: "6667898"
},
{
name: "Fidor",
iban: "909873423",
swift: "998733"
}
]
async function dropDatabase () {
console.log('Removing User collection')
await User.remove()
console.log('Success!')
}
async function seedUsers () {
console.log('Seeding users..')
try {
await User.insertMany(users)
console.log('Success!')
} catch(error) {
console.log('Error:' + e)
}
}
dropDatabase()
seedUsers()
process.exit(0)
但它似乎没有超越每个函数中的await
语句。输出是:
Removing User collection
Seeding users..
数据库中没有对象。我使用与教程中找到的完全相同的语法,无法理解为什么这不起作用。 任何想法的人?我想这是一个非常愚蠢的错误,我现在还没有看到。谢谢!
答案 0 :(得分:2)
在致电Left (SomeException EmptyListException)
之前,您的代码并未等待 Try
Using Client As New WebClient
Client.DownloadFile(sExtract, sDownloadTo)
End Using
Catch ex As Exception
Debug.Print("Failed: " + sExtract)
End Try
和dropDatabase()
完成。
您需要将这两个调用包装在另一个可以等待完成的seedUsers()
方法中。
process.exit(0)
但是,您可能不应该致电async
,但这是一个单独的问题。