使用nodejs、mongodb、express、linux搭建社区网站(5)-用户登录及个人主页
2014-11-30 23:04
771 查看
这里,主要是用户登录及获取用户信息及其他页面及路由使用,在后台,只要明白了路由与视图及接口直接的关系,其他都一样的开发方式,这次通过登录及个人信息再次说一下。
首先是登录接口的开发,这儿没有对登录重新写页面登录,所以只是post请求方法,在controllers/user.coffee中添加如下代码:
当post请求 /user/login的时候,将进入此接口,获取传过来的用户名及密码,再调用userBll中登录方法,在 /Bll/userBll.coffee中有以下代码
它抛出了一个login接口,所以在上面controller中可以使用userBll.login,传入user对象,而在这儿,又调用了 /Dal/dbUser中抛出的login接口,此用于与mongodb数据库进行交换,来查找验证是否存在用户信息并登录,代码如下:
在这里,抛出一个登录接口,需要一个user对象,通过连接数据库中userInfo表,再通过findOne方法进行查找验证用户信息。再通过从最上面,及controller中传过来的回调函数cb进行成功或者失败后的操作,主要是如果出错,则返回错误,如果成功,则返回成功,且写入session保持用户信息。
同样,获取用户信息接口,也是通过前端发送post请求,传入用户Id,通过controller、Bll、Dal中user相应接口,最后从数据库中获取数据,并通过回调函数cb返回,如下:
/controllers/user.coffee中添加:
/Bll/userBll.coffee中添加:
/Dal/dbUser.coffee中添加:
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官网查找相关文档。
在后面,将分享一些网络服务器搭建的一些过程。
首先是登录接口的开发,这儿没有对登录重新写页面登录,所以只是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官网查找相关文档。
在后面,将分享一些网络服务器搭建的一些过程。
相关文章推荐
- 使用nodejs、mongodb、express、linux搭建社区网站(1)之nodejs、mongodb的windows下安装
- 使用nodejs、mongodb、express、linux搭建社区网站(4)-mongodb连接及注册的开发
- 使用nodejs、mongodb、express、linux搭建社区网站(3)-页面与路由
- 使用nodejs、mongodb、express、linux搭建社区网站(2)之项目创建及app.js生成
- linux下使用Apache为用户搭建个人主页
- nodejs使用express,crypto配合validator实现用户登录逻辑
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(二)主页和注册页面的实现
- Node.js + Express + Mongodb 开发搭建个人网站(一)
- 从零开始搭建个人网站(2) Windows和Linux下ssh登录的配置
- 从零开始搭建个人网站(3) Linux新建用户和添加到sudo组
- nodejs使用express,crypto配合validator实现用户登录逻辑
- Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)
- j2ee 简单网站搭建:(七)使用 shiro 结合 jcaptcha 实现用户验证登录
- ASP.NET Core 一步步搭建个人网站(4)_主页和登录验证
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(一)项目搭建
- nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客
- RHEL下使用Apache为用户搭建个人主页
- ASP.NET Core 一步步搭建个人网站(2)_一键部署和用户注册登录
- Node.js + Express + Mongodb 开发搭建个人网站(三)
- Node.js + Express + Mongodb 开发搭建个人网站(二)