您的位置:首页 > 数据库 > Mongodb

使用nodejs、mongodb、express、linux搭建社区网站(5)-用户登录及个人主页

2014-11-30 23:04 771 查看
这里,主要是用户登录及获取用户信息及其他页面及路由使用,在后台,只要明白了路由与视图及接口直接的关系,其他都一样的开发方式,这次通过登录及个人信息再次说一下。

首先是登录接口的开发,这儿没有对登录重新写页面登录,所以只是post请求方法,在controllers/user.coffee中添加如下代码:

###
登录
@param email
@param password
###
exports.login_POST = (req, res) ->
user =
email : req.body.userName
password : req.body.pwd
userBll.login user, (err, result)->
if err
res.send
code: 1
message: err.message
else if !result
res.send
code: 1
message: '用户不存在,请注册后登录'
else
setSession(req, result)
res.send
code: 0
message: 'ok'
result: result

当post请求 /user/login的时候,将进入此接口,获取传过来的用户名及密码,再调用userBll中登录方法,在 /Bll/userBll.coffee中有以下代码

###
登录
###
exports.login = (user, cb) ->
dbUser.login user, cb

它抛出了一个login接口,所以在上面controller中可以使用userBll.login,传入user对象,而在这儿,又调用了 /Dal/dbUser中抛出的login接口,此用于与mongodb数据库进行交换,来查找验证是否存在用户信息并登录,代码如下:

###
登录
###
exports.login = (user, cb) ->
dbHelper.connectDB "userInfo", cb, (collection) ->
collection.findOne user, (err, doc)->
mongodb.close()
if err
cb new Error("登录失败")
else
cb null, doc

在这里,抛出一个登录接口,需要一个user对象,通过连接数据库中userInfo表,再通过findOne方法进行查找验证用户信息。再通过从最上面,及controller中传过来的回调函数cb进行成功或者失败后的操作,主要是如果出错,则返回错误,如果成功,则返回成功,且写入session保持用户信息。

同样,获取用户信息接口,也是通过前端发送post请求,传入用户Id,通过controller、Bll、Dal中user相应接口,最后从数据库中获取数据,并通过回调函数cb返回,如下:

/controllers/user.coffee中添加:

###
获取用户信息
###
exports.getUserInfo = (req, res) ->
userId = req.query.id || req.session.userId
userBll.getUserInfo userId, (err, user) ->
if err
res.send
code: 1
message: err.message
else
res.send
code: 0
message: "ok"
user: user

/Bll/userBll.coffee中添加:

###
获取用户信息
###
exports.getUserInfo = (id, cb) ->
dbUser.getUserInfo id, cb

/Dal/dbUser.coffee中添加:



#

获取用户信息

#

exports.getUserInfo = (id, cb) ->

dbHelper.connectDB “userInfo”, cb, (collection) ->

collection.findOne { _id: ObjectId(id)},(err, user) ->

mongodb.close()

if err

cb new Error(err)

else

cb null, user

也是使用findOne方法查询,使用id查询用户信息,并通过回调cb返回查询结果;

所有在后面的后台接口、页面开发都是通过此方法,如果对于mongodb使用不熟悉的,可以参考MongoDB命令及SQL语法对比,也可查看mongodb官网查找相关文档。

在后面,将分享一些网络服务器搭建的一些过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb nodejs express
相关文章推荐