Promisify 一个创建猫鼬模型实例(即文档)的函数,将其保存到模型,然后 returns 然后 returns 模型
Promisify a function that creates a mongoose model instance (i.e. a document), saves it to the model, and returns then returns the model
我正在尝试 Promisify 以下函数
let Definition = mongoose.model('Definition', mySchema)
let saveDefinition = (newDefinition) => {
var newDef = new Definition(newDefinition);
newDef.save();
return Definition.find();
}
实现以下事件顺序
let saveDefinition = (newDefinition) => {
return = new Promise((res, rej) => {
// newDef = new Definition(newDefinition)
// then
// newDef.save()
// then
// return Definition.find()
})
}
目标是根据客户端的请求调用此函数,将文档保存到名为“定义”的模型中,然后 return 模型中的所有文档返回给客户端。任何帮助或指导将不胜感激。
我不太确定如何解决这个问题
a function that creates a mongoose model instance (i.e. a document), saves it to the model, and returns then returns the model
您没有什么特别需要做的。 .save()
已 returns(承诺)已保存文档。 Return它。
const Definition = mongoose.model('Definition', mySchema);
const saveDefinition = (data) => {
const newDef = new Definition(data);
return newDef.save();
};
完成。
我会以不同的方式写它以摆脱那个全局 Definition
变量:
const saveObject = modelName => {
const Model = mongoose.model(modelName, mySchema);
return (data) => new Model(data).save();
};
const saveDefinition = saveObject('Definition');
const saveWhatever = saveObject('Whatever');
两种情况下的用法相同
saveDefinition({ /* ... */ }).then(def => {
// success
}).catch(err => {
// failure
});
或
async () => {
try {
const def = await saveDefinition({ /* ... */ });
// success
} catch (err) {
// failure
}
};
我正在尝试 Promisify 以下函数
let Definition = mongoose.model('Definition', mySchema)
let saveDefinition = (newDefinition) => {
var newDef = new Definition(newDefinition);
newDef.save();
return Definition.find();
}
实现以下事件顺序
let saveDefinition = (newDefinition) => {
return = new Promise((res, rej) => {
// newDef = new Definition(newDefinition)
// then
// newDef.save()
// then
// return Definition.find()
})
}
目标是根据客户端的请求调用此函数,将文档保存到名为“定义”的模型中,然后 return 模型中的所有文档返回给客户端。任何帮助或指导将不胜感激。
我不太确定如何解决这个问题
a function that creates a mongoose model instance (i.e. a document), saves it to the model, and returns then returns the model
您没有什么特别需要做的。 .save()
已 returns(承诺)已保存文档。 Return它。
const Definition = mongoose.model('Definition', mySchema);
const saveDefinition = (data) => {
const newDef = new Definition(data);
return newDef.save();
};
完成。
我会以不同的方式写它以摆脱那个全局 Definition
变量:
const saveObject = modelName => {
const Model = mongoose.model(modelName, mySchema);
return (data) => new Model(data).save();
};
const saveDefinition = saveObject('Definition');
const saveWhatever = saveObject('Whatever');
两种情况下的用法相同
saveDefinition({ /* ... */ }).then(def => {
// success
}).catch(err => {
// failure
});
或
async () => {
try {
const def = await saveDefinition({ /* ... */ });
// success
} catch (err) {
// failure
}
};