赞
踩
Node.js是一个JavaScript的运行环境, 运行在服务端的 JavaScript(简单而言)
Express是基于Node.js平台的简单灵活web应用开发的框架
首先Chrome中安装好Postman插件(可以拟前端带参数发送请求到后端)
这是为了快速创建一个Express应用的“骨架”,安装后express命令就可以使用了
npm install express-generator -g
express myServer
myServer是我的项目名称
进一步cd进建立好的项目再安装相关依赖
npm install
set DEBUG= myServer & npm start
在浏览器中输入地址如下,就可以看到Express框架的欢迎界面
笔者使用的测试数据库是MongoDB,关于这个数据库的准备挺复杂但对此不多作阐述
使用中间件作为链接方式——Mongoose
还是首先安装中间件Mongoose
npm install mongoose --save
首先我们的目标是
post过去的参数
username用户名
password密码
目标url(我们的接口):http://localhost:3000/users/login
建立users.js文件,对于routes目录中的文件以文件名作为域名二级路径,意思是使用http://localhost:3000/users可以导航到该目录的user.js文件里面
项目设置的导航原理是app.js文件中存在此两句:
var usersRouter = require('./routes/users');
app.use('/users', usersRouter);//该应用app使用被引入的文件
其实项目是默认生成了users.js文件,当然我们还是要做增加的
在根目录common文件夹中新建db.js
所有用户的操作(注册、登录等)都应该建立在用户这个数据集的基础上,需要在model文件夹下面新建user.js
建立了相关的user数据集,包含四个字段,每个字段赋予了相应的数据类型,接下来定义了一些常用的数据库搜索方法(callback是回调函数)此model引用了db.js文件中已经连接的Mongoose插件。
关于以下代码的token值可以参考这篇文:
如果只是为了测试前后端联系,暂时不要加入token机制的代码,按需要求
而且代码中的Token的方式是不安全、无意义的,也只是测试用
在routes/user.js中新增路由地址,有users为域名的地址,定义API接口:
var express = require('express'); var router = express.Router(); var user = require('../model/user'); var crypto = require('crypto'); const init_token = 'TKLO2o'; //获取MD5值 function getMD5Password(id) { var md5 = crypto.createHash('md5'); var token_before = id + init_token return md5.update(token_before).digest('hex'); }; //用户登录接口 router.post('/login',function(req, res, next) { if(!req.body.username){ res.json({status:0,message:"用户名为空!"}) } if(!req.body.password){ res.json({status:0,message:"密码为空!"}) } user.findByUserLogin(req.body.username,req.body.password,function (err, userSave) { if(userSave.length!=0){ //通过md5查看密码 var token_after = getMD5Password(userSave[0]._id) res.json({status:1,data:{token:token_after,user:userSave},message:"用户登陆成功!"}) }else{ //返回空 res.json({status:0,message:"用户名或者密码错误"}) } }) }); module.exports = router;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。