数据库接口利用路由中间件优化

本文详细介绍如何使用Node.js的Express框架搭建RESTful风格的API服务,包括初始化环境、文件夹结构设定、路由配置及数据库操作等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、开始前准备

1.1初始化,安装npm包,(express,mysql)

1.2文件夹设置

1.2.1统一建立一个文件夹,用于放置不同请求类型的请求方式或不同形式的请求地址,便于管理查询
1.2.2建立一个工具文件夹tools,放置公共形式的代码
在这里插入图片描述

1.3 说明

//划分文件使用Router
//创建一个route目录,专门用于放置路由文件,通过module.exports导出供外部使用。

二、代码

2.1 sql.js代码

在这里插入图片描述

2.2 route文件夹api.js 获取数据代码

//导入自定义模块
const connection = require('../../tools/sql')
const express = require('express')
function getClientIp(req) {
    return req.headers['x-forwarded-for'] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress;
}
//路由中间件
//express对象的方法
//创建路由实例,我们可以在该实例上自由的添加路由
const router = express.Router()
//获取
router.get('/students', (req, res) => {
    console.log(req.body);
    //查询数据表
    // 4. 执行SQL语句
    let sq = 'select * from students'
    connection.query(sq, (err, result) => {
        if (err) {
            console.log(err);
            res.json({ msg: '获取失败' })
        } else {
            // 查询的结果是一个数组
            // 每一个元素是一个对象,
            //  对象的属性就是 select语句的查询的字段
            console.log(result); // result就是查询结果
            console.log('现在是', new Date().toLocaleString())
            console.log('访问的地址是', req.url)
            console.log('ip是', getClientIp(req))
            res.json({ msg: '获取成功', '北京时间': new Date().toLocaleString(), '访问的地址': req.url, 'ip': getClientIp(req) })
            // 输出日志
            console.log('现在是', new Date().toLocaleString())
            console.log('访问的地址是', req.url)
            console.log('ip是', getClientIp(req))
        }
    })
})
//导出路由
module.exports = router

在这里插入图片描述
在这里插入图片描述

2.3 route文件夹add.js 添加数据代码

const connection = require('../../tools/sql')
const express = require('express')
function getClientIp(req) {
    return req.headers['x-forwarded-for'] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress;
}
//express对象的方法
//创建路由实例,我们可以在该实例上自由的添加路由
const router = express.Router()
//获取普通键值对参数
router.use(express.urlencoded())

//添加
//注意这时候再加路由,就可以不带前面的/route路径了
router.post('/message', (req, res) => {
    //获取到的参数会自动添加到req.body中
    console.log(req.body);
    //解构赋值
    let { name, age } = req.body
    // console.log(req.body);
    let sql = `insert into students(name,age) values("${name}",${age})`
    connection.query(sql, (err, result) => {
        if (err) {
            console.log('err', err);
            res.json({ msg: '添加失败' })
        } else {

            // 输出日志
            console.log('现在是', new Date().toLocaleString())
            console.log('访问的地址是', req.url)
            console.log('ip是', getClientIp(req))
            res.json({ msg: '添加成功', '北京时间': new Date().toLocaleString(), '访问的地址': req.url, 'ip': getClientIp(req) })
        }
    })

})
//导出该路由
module.exports = router

在这里插入图片描述
在这里插入图片描述

2.4.server.js代码

在这里插入图片描述

三、运行

3.1打开mysql数据库软件 ,测试

在这里插入图片描述

3.2nood.js运行

在这里插入图片描述

3.3 postmen测试

3.3.1添加操作

在这里插入图片描述
在这里插入图片描述

3.3.2获取操作

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值