当前位置:   article > 正文

Node.js Express框架 写后台接口API_node express 写后端api

node express 写后端api

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

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

【1】初始化项目

1.1. 应用生成器Express的安装

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

npm install express-generator -g
  • 1

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

express myServer
  • 1

myServer是我的项目名称

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

npm install
  • 1

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

set DEBUG= myServer & npm start
  • 1

1.4.打开测试页面

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

【2】连接数据库

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

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

还是首先安装中间件Mongoose

npm install mongoose --save
  • 1

【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使用被引入的文件
  • 1
  • 2

其实项目是默认生成了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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

3.4 Postman的测试

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/69017
推荐阅读
相关标签
  

闽ICP备14008679号