为了账号安全,请及时绑定邮箱和手机立即绑定

貌似用户名判重有问题?

如果没查到重复也会重定向到首页。。

然后我发现

if([]){

    console.log("i'm here now") 

}

居然会被打印出来。。

也就是空数组[]被当成true了,,

但是

if([]==true){

    console.log('不会到这')

}

又不会进入条件分支。。

正在回答

5 回答

嗯.这里确实是会这样子.schemas 下的user.js  封装个静态方法 findByName

UserSchema.statics = {
	fetch: function(cb) {
		return this
			.find({})
			.sort('meta.updateAt')
			.exec(cb)
	},
	findByName: function(_name, cb) {
		return this
			.findOne({
				name: _name
			})
			.exec(cb)
	}
}

然后 app.js 那里的find换成findByName 或者直接用findOne

0 回复 有任何疑惑可以回复我~

虽然这样改可以正常运行。但控制台会报错TypeError:Cannot read property ‘name’ of undefined

0 回复 有任何疑惑可以回复我~

把 if (user) 改成 if (user.length) 就可以了

0 回复 有任何疑惑可以回复我~

我的问题和你的是一样,需要修改下那个代码的判断。

0 回复 有任何疑惑可以回复我~

将前面的User.find方法改成User.findOne就ok了,,find返回的是 '列表',没找到就是[], findOne返回的是单个对象,没找到匹配就是null

4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node建站攻略(二期)——网站升级
  • 参与学习       51940    人
  • 解答问题       408    个

帮助你深入前后端开发留下的迷惑,为进一步自学打下基础

进入课程
意见反馈 帮助中心 APP下载
官方微信