我不明白特定的异步 javascript 代码:我有几行由 node.js 运行的非常简单的 javascript,我在其中查询本地 mongoDB,主要是这样做的:
需要猫鼬
承诺连接到数据库
mongoose.connect("...url to my local mongoDB...") .then(console.log("Connected to DB..."))
创建模式
从模式创建模型
定义一个异步函数来创建一个新对象,将其保存为 mongoDB 中的文档,并控制台记录尝试保存文档后返回的结果。
我不明白的是 console.log("Connect to DB") 和 console.log(document.save() 的结果) 的顺序:确实,当保存没有错误时,顺序似乎没问题:我首先有“连接到数据库...”,然后是返回的保存文档:
但是当由于不遵守某些要求而出现数据验证错误时,则在“连接到数据库”之后打印“连接到数据库”:
关于代码的结构,我不明白为什么在打印错误后打印“已连接到数据库...”。我怀疑异步代码是原因,但我不明白为什么。这几行非常简单的代码来自“使用 Mosh 编程”课程,我们可以在他的控制台上看到完全相同的行为。
更多代码细节:
const mongoose = require("mongoose")
mongoose
.connect(my_mongo_db_url)
.then(() => console.log("Connected to DB"))
.catch(err => console.log("Could not connect to DB"))
const courseSchema = new mongoose.Schema({ ...course schema... })
const Course= mongoose.model("Course", courseSchema )
async function createCourse(){
const course = new Course({ ...new course values... })
try { const result = await course.save()}
catch (err) { console.log(err.message)}
}
createCourse()
炎炎设计
相关分类