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

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

首先是登录接口的开发,这儿没有对登录重新写页面登录,所以只是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官网查找相关文档。

在后面,将分享一些网络服务器搭建的一些过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值