gpt4 book ai didi

node.js - Mongoose 与 MongoDB 验证

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:16 25 4
gpt4 key购买 nike

我正在开发一个项目,并正在遵循用户创建指南。目标是创建一个具有唯一用户名、唯一电子邮件和 bcrypt 密码的用户。一旦使用了用户名或电子邮件,其他用户就不能再使用其中之一进行注册。

该过程涉及创建用户,使用 postman 通过 Post 请求使用以下架构。 “唯一”指示器是在创建用户后添加的。在我更新架构以包含“唯一”选项后,我发现仍然可以使用同一电子邮件创建用户。在这里搜索时,我发现这是由于使用该电子邮件创建了初始文档,并且通过删除该集合并重新开始解决了这个问题,这不是一个大问题。

var UserSchema = new Schema({
username: { type: String, lowercase: true, required: true, unique:
true},
password: { type: String, required: true },
email: { type: String, required: true, lowercase: true, unique: true}
});

但是,在研究 Mongoose 网站时,我发现了一些有关验证的信息,这让我有点困惑。我正在看validation文档,然后 FAQ在 Mongoose 网站上,据我所知,我应该在生产中使用 MongoDB shell create the indexes对于我的数据,如果我希望它们在创建时被确认是唯一的,而不是使用“唯一”选项。

这是正确的吗?或者,当 Mongoose 告诉我最终我实际上需要使用 MongoDB Shell 时,为什么我要在 Mongoose 中使用“unique”?随着Schema validation available in MongoDB如今,Mongoose 仍然是开发 MEAN 应用程序时的首选吗?我确实看到 Mongoose 经常被使用,但我没有任何大的意见或需要使一些东西尽可能相关,Mongoose 是否仍然值得学习而不是仅仅使用 MongoDB 本身?如果我错得那么严重,那很好,我可以接受,但任何见解都将不胜感激。

最佳答案

您可以使用Node.js 的 MongoDB Native Driver 而不是 Mongoose。我发现使用 Mongoose 的模式更容易、更相关。在这种情况下,并没有真正的错误或正确,但是 Mongoose 有一点性能下降,如下所示: Performance

您还可以将 Mongoose 与 mongoose-unique-validator 包一起使用来处理unique 验证。 Link for the package

const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');

var UserSchema = mongoose.Schema({
username: { type: String, lowercase: true, required: true, unique: true},
password: { type: String, required: true },
email: { type: String, required: true, lowercase: true, unique: true}
});

userSchema.plugin(uniqueValidator);

关于node.js - Mongoose 与 MongoDB 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52617982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com