路由中间件写法优化接口代码

目标:

基于nodejs 用express + mysql 包 写接口,并利用路由中间件对代码进行优化,实现学生数据添加。

接口1

添加学生数据
url: localhost:3000/api/student
method: post
参数格式:普通键值对

name: 字符串
age: 数值
测试:postman来测试

接口2

获取所有的学生数据
url: localhost:3000/api/student
method: get
参数:无
测试:postman来测试

实现步骤

1. 新建一个项目文件夹,进行项目初始化

终端窗口输入命令: npm init --yes
初始化完成会在项目文件夹下生成会生成package.json文件

2. 下载安装express 和 mysql

终端窗口输入命令: npm i express mysql
安装完成,会在项目文件夹下生成node_modules文件夹和package-lock.json文件,

3. 创建文件目录结构

3.1 utills文件夹,并在其下面创建sql.js文件用来模块化mysql
3.2 在项目根目录下创建路由文件夹router,用来存放路由文件get.js和post.js
3.3 在项目根目录中创建server.js用来合并路由文件,对代码进行优化.
最终生成文件夹目录为:
路由中间件写法优化接口代码

4. 操作sql.js,模块化mysql

// 1. 加载mysql
const mysql = require('mysql');
// 2. 创建连接对象
const connection = mysql.createConnection({
    // 对象的属性名字不能改变
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'lqq'
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log('数据库连接失败')
  // 没有错误对象提示连接成功
  console.log('mysql数据库连接成功')
});

// 导出
module.exports = connection

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

5. 编写路由接口

5.1 添加学生信息接口post.js

// 引入并调用express
const express = require('express')
// 导入sql.js
const connection = require('../../utils/sql')
// 普通键值对参数设置
const router = express.Router()
router.use(express.urlencoded())   
// 添加人员信息
router.post('/student',(req,res)=>{
    // 获取请求参数,并解构
    const {name,age} = req.body
    // 操作数据库
    const sql = `insert into my(name,age) values('${name}',${age})`
    connection.query(sql,(err,data)=>{
        if(err){
            res.json({msg:'添加失败',code:0})
        }else {
            res.json({msg:'添加成功',code:1})
        }
    })
})
// 导出
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

5.2 获取所有学生信息接口 get.js

// 引入并调用express
const express = require('express')
// 导入sql.js
const connection = require('../../utils/sql')
// 普通键值对参数设置
const router = express.Router()
// 获取所有人员信息
router.get('/student',(req,res)=>{
     // 操作数据库添加信息
     const sql = `select * from my`
     connection.query(sql, (err, data)=>{
         if(err){
             res.json({msg:'获取失败',code:0})
         }else {
             res.json({msg:'获取成功',code:1,data:data})
         }
     })
})
// 导出
module.exports = router
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

6. 路由中间件合并代码 server.js

const express = require('express')
const app = express()
// 导入router中的中间件
const getRouter = require('./router/api/get')
const postRouter = require('./router/api/post')
// 使用中间件
app.use('/api',getRouter)
app.use('/api',postRouter)
// 启动服务器
app.listen(3000,()=>{
    console.log('3000已启动');
})

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

7. 终端命令窗口启动服务器,并开启MySQL,连接数据库

路由中间件写法优化接口代码

8. 打开postman测试接口,并检查数据库更新情况

8.1 postman测试结果
路由中间件写法优化接口代码

路由中间件写法优化接口代码
8.2 数据库更新结果
路由中间件写法优化接口代码

上一篇:nodejs+art-template配置模板引擎


下一篇:关于IIS Express在局域网使用