首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose会自动转换类型吗?

Mongoose会自动转换类型吗?
EN

Stack Overflow用户
提问于 2020-07-01 18:40:19
回答 1查看 74关注 0票数 0

当我用这个Schema检索和修改一个大厅时,它似乎自动转换类型。我找不到该功能的文档,所以我想知道我是不是把其他东西误认为自动转换了。

我将password和owner类型转换为truefalse,因为这是一个公开的API端点,每个人都可以查看。

当我运行匿名器函数时,它运行并生成password : "true",而不是password: true。我希望它发送password: true,但我不确定这是否可能。

代码语言:javascript
复制
// Schema
const LobbySchema = new mongoose.Schema({
  name: String,
  password: String,
  owner: { type: String, require: true },
  Player: [],
});

// Anonymizer function
lobby.password = !!lobby.password;
lobby.owner = lobby.owner === user ? true: false;

res.send(JSON.stringify(lobby));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-10 18:50:20

是的,Mongoose会在可能的情况下进行值转换。

这里的问题是您的模式将类型owner定义为String。因此,值truefalse将被强制转换为string。

这就是你得到password : "true"的原因。

要获取布尔值形式的密码,可以在模式中设置Boolean或使用Custom casting

未经过测试,但遵循文档应与以下内容类似:

代码语言:javascript
复制
const originalCast = mongoose.Boolean.cast();
mongoose.Boolean.cast(v => {
  if (v === 'true') {
    return true;
  }
  if (v === 'false') {
    return false;
  }
  return originalCast(v);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62674990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档