我正在尝试使用猫鼬创建登录表单。当我尝试在数据库中查找例如不存在的电子邮件时,发生了错误。在这种情况下,我的应用程序崩溃了。
这是我的UserSchema:
defmodule B do
require A
def test, do: A.call(:test)
end
#⇒ ** (CompileError) iex:21: undefined function A.test/1
# (stdlib) lists.erl:1338: :lists.foreach/2
# (stdlib) erl_eval.erl:677: :erl_eval.do_apply/6
# (iex) lib/iex/evaluator.ex:249: IEx.Evaluator.handle_eval/5
这是我的NodeJS代码和查询:
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
name: {
type: String,
required: true,
trim: true
},
credit:{
type: Number,
default:0
},
email: {
type: String,
unique: true,
required: true,
trim: true
},
telegramId:{
type: String,
trim: true,
required: true
},
password: {
type: String,
required: true
},
inboxMessages: {
type: Array
},
submittedBooks:{
type: Array
},
profilePicture: {
type: String,
default: '/'
}
});
var User = mongoose.model('User', userSchema);
module.exports = User;
UserModel.find({name: 'akbar'}, (err, data) =>{
if (err) {
console.log(err);
}
else{
console.log(data[0].password);
}
})
导致包含UserModel.find({name: 'akbar'}, ....)
的错误。如何防止我的应用崩溃?
答案 0 :(得分:2)
当您尝试从数据库中查找对象时,可能有3种情况。
内部服务器错误(您已选中此选项)。
空或空值。 (您尚未检查)。
获得所需的对象。 (您可以打印这些值)
因此,要检查场景2,请使用以下代码,
UserModel.find({name: 'akbar'}, (err, data) =>{
if (err) {
console.log(err);
} else if ((!data) || (data.length <= 0)) {
console.log('No objecct exist');
} else{
console.log(data[0].password);
}
})
答案 1 :(得分:0)
您在NodeJS中将导入为
var userModel = require('place_you_defined_the_model')
否则,如果只是导入,例如import('place_you_define_model')
,那么您应该使用
user.find({name:'Akbar'})