javascript - 节点 JS 对象返回未定义
问题描述
我有一个快速 api 端点。
我的 createS 服务是这样的:
async function createS(name, user_ids) {
const seg = new Seg ({
name : name,
user_ids : user_ids
})
await seg.save().then(doc => {
console.log(doc);===============>>> not undefined
return {doc}
}).catch(err => {console.log(err)});
}
我的控制器是这样的:
async function createS(req,res,next){
const sName = req.body.name;
const user_ids = req.body.user_ids;
console.log("*****")
segService.createS(sName, user_ids).then(function (doc){
console.log(doc)=============================================>>> undefined
})
我知道这个问题取决于异步过程。我尝试了几种类型的解决方案,我也是 Node JS 的新手。
为什么我收到此错误?我该如何解决这个错误?
解决方案
您的createS
服务需要返回一个承诺而不是实际doc
重构你的服务看起来像这样
async function createS(name, user_ids) {
const seg = new Seg ({
name : name,
user_ids : user_ids
})
return seg.save()
}
推荐阅读
- vulkan - 在 Vulkan 中重新提交待处理命令缓冲区的用例是什么
- flutter - 带有文本省略号的 FlatButton 溢出
- ruby-on-rails - 是否可以使用活动资源进行交易?
- java - 如何为 m:m 关系编写 jpa 存储库方法?
- powershell - 学生,在创建新用户 powershell 时自动向管理员发送电子邮件
- c++ - 调试模板的问题。专门针对 Linux GCC 7、GCC 6、GCC 5、GCC 4.9 错误的构建失败:模板参数 1 无效
- azure - 如何在单个事务中将一组用于 OCR 分析的图像提交到 Azure 计算机视觉 API?
- java - SAML Java Sping Boot - PKIX 路径构造因不受信任的凭证而失败
- python - 未同时运行的线程一次运行 1 个 Python
- c# - 尝试在 C# 中生成 hardwareID 并获得“System.Management.ManagementPath”异常