- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Mongoose 作为 NodeJS 的 ODM,但不完全理解错误处理的工作原理。它可以工作,但看起来不正确,并且不符合文档,所以我担心走这条路以后会困扰我。
例如,以下是基本登录路线:
app.post('/signin', function(req, res){
var email = req.body.email;
var password = req.body.password;
mongoose.model('User').findOne({
email: email,
password: password
}, function(err, user){
if (err){
console.log('Database Error')
return res.json({error: 'Database Error'})
} else {
if (!user) {
console.log('User not found.');
return res.json({error: 'Email and/or password incorrect.'})
} else {
console.log('User ' + user.email + ' found. Logging in.');
res.json({
token: jwt.sign({}, 'top-secret', {subject: user}),
data: data[user]
})
}
}
})
})
我特别担心:
if (err) {
//do something
} else {
if (!user){
//do something else
} else {
//log the user in
}
}
今天之前还没有真正使用过 Mongo,但这感觉像是很多条件错误处理。这里有什么我没有正确理解的地方吗?
最佳答案
本打算作为评论发布,但将其粘贴为答案更容易..
您可以简化 if-else 嵌套,因为您在每个条件的末尾返回,如下所示:
app.post('/signin', function (req, res) {
var email = req.body.email;
var password = req.body.password;
mongoose.model('User').findOne({
email: email,
password: password
}, function (err, user) {
if (err) {
console.log('Database Error');
return res.json({error: 'Database Error'});
}
if (!user) {
console.log('User not found.');
return res.json({error: 'Email and/or password incorrect.'});
}
console.log('User ' + user.email + ' found. Logging in.');
res.json({
token: jwt.sign({}, 'top-secret', {subject: user}),
data: data[user]
});
});
});
关于javascript - MongooseJS findOne() 的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35221487/
这是我的 mongoosejs 架构。我将 name unique 设置为 false,但这就是我得到的: MongoError: insertDocument::引起的::11000 E11000
在进行任何类型的验证之前,我需要清理 MongooseJS 中的字符串。如何访问模型的字段并更改(清理)该字段,然后才对该字段进行验证? 例如,这就是我的模型的样子: var Notification
我找到了多篇文章和指南,称赞使用 populate() 方法在 Mongoose 和 MongoDB 中进行连接的能力。 这让我很困惑。如果你想做连接,你不应该使用 SQL 数据库吗?加入 Mongo
目前我有以下方案模型: var userModel = mongoose.schema({ images: { public: [{url: {type: String}}]}
如何对不同的查询进行排序我试过这个 exports.categories = function(req, res) { Article.distinct({'categories' : tru
我看过this功能。 我可以看到它生成了一个slug,但我不太明白它是如何工作的。在 327 行,它返回来自 Model.findOne 函数的 promise ,但在该 Model.findOne
不知何故,在 mongoose 官方网站上很难找到信息。我想知道有没有教程或引用网站? 另外,一个特殊的问题是,如何在 mongoose 中运行 update() 。 :) 最佳答案 我在一个项目中使
我想知道是否有办法限制(子)文档中的元素数量。在我的应用程序中,可以使用 ajax 将元素添加到子文档,因此防止恶意用户添加大量可笑的条目很重要。 我能想到一种方法,就是查询父文档,检查子文档中的元素
假设我有一个文档,例如:var doc = Model.findOne({name:"name"}); 现在,如果文档通过数据库的另一个连接进行编辑,则 doc 不包含正确的信息。我确实需要它,所以我
我有如下 MongooseJS 模式: var UserSchema = new Schema({ name : String, app_key
我想我在使用 mongoosejs 时遇到了麻烦。我试图将一个对象数组保持在特定大小 2。调用此函数时,它会向数组添加一个项目,并在必要时将其缩小。但是,当我保存数组时,大小不会缩减为 2。按照代码和
目前我在引用对象中的文本索引时遇到问题这是代码 架构 var UserSchema = new mongoose.Schema({ username: String, fullname
我有一个用于 Lists 的 MongooseJS 架构,其中每个列表都包含一个 ListItems 数组。每个 ListItem 只是对 Item 的引用和 isSelected 的标志。像这样:
我正在尝试填充嵌套在其他引用中的引用。我已经可以工作了,但看起来有点老套,想知道是否还有其他方法可以实现这一点: return Q.ninvoke(BoardSchema, 'find', {'_id
使用 Mongoose 作为 NodeJS 的 ODM,但不完全理解错误处理的工作原理。它可以工作,但看起来不正确,并且不符合文档,所以我担心走这条路以后会困扰我。 例如,以下是基本登录路线: app
我是 mongodb 和 mongoose 的新手,我在获取子子数组时遇到了麻烦。 我的数据是这样的: [ {_id : ..., name : 'Category nam
Request.findOne({_id: id}).populate("user").exec(function(err, request) { if (!err) { re
假设我有一个如下所示的 ABC 架构: ABC = mongoose.Schema ({ name: String , x: String , y: String ,
这个问题已经有答案了: How do you turn a Mongoose document into a plain object? (9 个回答) mongoose .find() method
我正在编写一个应用程序,使用 Node.js 和 MongooseJS 作为处理数据库调用的中间件。 我的问题是我有一些嵌套模式,其中一个以错误的方式填充。当我跟踪人口的每一步时 - 所有数据都很好,
我是一名优秀的程序员,十分优秀!