「学习阶段」restful风格优化路由

 

目录结构:

连接数据库公共文件:

// fools/sql.js

// 1.加载mysql
var mysql = require('mysql');
// 2.创建连接
var connection = mysql.createConnection({
    host: 'localhost', // 你要连接的数据库服务器的地址
    port: 3306, // 端口号
    user: 'root', // 连接数据库服务器需要的用户名
    password: 'root', // 连接数据库服务器需要的密码
    database: 'node136' //你要连接的数据库的名字
});
// 3.连接数据库
connection.connect((err) => {
    // 如果有错误对象,表示连接失败
    if (err) return console.log('数据库连接失败')
        // 没有错误对象提示连接成功
    console.log('mysql数据库连接成功')
});

module.exports = connection

 原文件:

const express = require('express')
const app = express()

app.use(express.urlencoded())
const connection = require('./fools/sql')
app.post('/api/student', (req, res) => {
    // 接受普通键值对的参数
    const { username, age } = req.body
        // 添加到数据库
    const sql = `insert into student(username,age) values('${username}',${age})`
        // 打印查看sql语句是否有拼接错误                注意引号!!!
        // console.log(sql);
    connection.query(sql, (err, data) => {
        if (err) {
            console.log(err);
            res.json({ msg: '添加失败', code: 0 })
        } else {
            res.json({ msg: '添加成功', code: 1 })
        }
    })
})

app.get('/api/student', (req, res) => {
    const sql = `select * from student`
    connection.query(sql, (err, data) => {
        if (err) {
            res.json({ msg: '查询失败', code: 0 })
        } else {
            res.json({ msg: '查询成功', code: 1, result: data })
        }
    })
})

app.listen(8080,() => {
    console.log('8080端口监听中....');
})

因接口都写在一次,未来项目体积变大时,难以维护。

所以为了方便维护,使用以下方法优化路由


1.初始化npm,下载第三方模块

创建项目根目录,使用npm初始化及下载模块

npm init -y
npm i express mysql

2.连接数据库,设置路由规则

 创建文件便于管理路由:

        1.在项目根目录创建router文件夹。

        2.在文件夹内根据接口路径分类存放

引入express模块,使用模块的Router方法。

get方法:

const express = require('express')
const router = express.Router()


const connection = require('../../fools/sql')
router.get('/student', (req, res) => {
    const sql = 'select * from student'
    connection.query(sql, (err, data) => {
        if (err) {
            res.json({ msg: '查询失败', code: 0 })
        } else {
            res.json({ msg: '查询成功', code: 1, result: data })
        }
    })
})

module.exports = router; // 模块导出

post方法:

const express = require('express')
const router = express.Router()


router.use(express.urlencoded())
const connection = require('../../fools/sql')
router.post('/student', (req, res) => {
    // 接受普通键值对的参数
    const { username, age } = req.body

    // 添加到数据库
    const sql = `insert into student(username,age) values('${username}',${age})`
        // 打印查看sql语句是否有拼接错误                注意引号!!!
        // console.log(sql);
    connection.query(sql, (err, data) => {
        if (err) {
            console.log(err);
            res.json({ msg: '添加失败', code: 0 })
        } else {
            res.json({ msg: '添加成功', code: 1 })
        }
    })
})

module.exports = router; // 模块导出

3.整合

const express = require('express')
const app = express()

const getStudent = require('./router/api/getStudent')
const postStudent = require('./router/api/postStudent')

// 路由中间件
app.use('/api', getStudent)
app.use('/api', postStudent)

app.listen(8080, () => {
    console.log('8080端口监听中....');
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值