Node.js Express框架 写后台接口API

Node.js是一个JavaScript的运行环境, 运行在服务端的 JavaScript(简单而言)
Express是基于Node.js平台的简单灵活web应用开发的框架

首先Chrome中安装好Postman插件(可以拟前端带参数发送请求到后端)

【1】初始化项目

1.1. 应用生成器Express的安装

这是为了快速创建一个Express应用的“骨架”,安装后express命令就可以使用了

npm install express-generator -g

1.2.进入项目目录(原本是空的)创建项目

express myServer

myServer是我的项目名称

进一步cd进建立好的项目再安装相关依赖

npm install

1.3.所有的包安装之后使用以下命令启动应用

set DEBUG= myServer & npm start

1.4.打开测试页面

在浏览器中输入地址如下,就可以看到Express框架的欢迎界面
在这里插入图片描述

【2】连接数据库

笔者使用的测试数据库是MongoDB,关于这个数据库的准备挺复杂但对此不多作阐述

使用中间件作为链接方式——Mongoose

还是首先安装中间件Mongoose

npm install mongoose --save

【3】开发用户登录api

首先我们的目标是
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文件,当然我们还是要做增加的

3.1 连接数据库的公用模块

在根目录common文件夹中新建db.js
在这里插入图片描述

3.2 用户model

所有用户的操作(注册、登录等)都应该建立在用户这个数据集的基础上,需要在model文件夹下面新建user.js
在这里插入图片描述

建立了相关的user数据集,包含四个字段,每个字段赋予了相应的数据类型,接下来定义了一些常用的数据库搜索方法(callback是回调函数)此model引用了db.js文件中已经连接的Mongoose插件。

3.3 在routes/user.js中的API接口定义

关于以下代码的token值可以参考这篇文:
如果只是为了测试前后端联系,暂时不要加入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;

3.4 Postman的测试

在这里插入图片描述

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值