使用express、mysqls 实现模块化管理
下载包
npm install express
npm install mysqls
1.根目录创建serve.js文件连接数据库完成web基本框架搭建
const ip = require('ip')
const express = require('express')
let { init } = require('mysqls')
const port = 8848
const app = express()
// 连接数据库
init({
host: 'localhost',
user: 'root',
password: '123456',
database: 'myonline',
port: 3306,
})
// host: host地址 (default:'127.0.0.1')
// user: 用户名 (default:'root')
// password: 数据库密码 (default:'root')
// database: 使用的数据库 (default:'test')
// port: 端口 (default:'3306')
app.listen(port, () => {
console.log(`Example app listening at ${ip.address()}:${port}`)
})
2.根目录下创建router文件夹用来存放不同的模块
例: 创建user模块 在router文件夹下创建user.js
const express = require('express')
const app = express()
const userApi = require('../api/user') // 请求路由,userApi.getData是该路由的处理逻辑,为模块化在../api/user文件里写处理逻辑
app.post('/add', userApi.add)
app.use('/', function (req, res) {
res.send({
code:'404',
msg:'暂无路由'
})
})
module.exports = app
3.在根目录下serve.js文件里导入user.js文件并使用中间件来实现模块化
.../原serve.js文件代码
const user = require('./router/user')
const bodyParser = require('body-parser') // 获取post请求的参数
app.use(bodyParser.urlencoded({ extended: false })) // post请求获取body数据
app.use('/user', user) //使用express的中间件来实现模块化管理
app.use('/', function (req, res) {
res.send(request(404))
})
4.使用mysqls来进行数据库的增删改查
该文件为 ./router/user文件里的接口处理逻辑
let { exec, sql } = require('mysqls')
const add = (req, res) => {
let body = req.body
let { name, number, sex, phone } = body
let obj = { name, number, sex, phone }
exec(sql.table('user').data(obj).insert())
.then(() => {
res.send({
code: 200,
mag: '添加成功'
})
}).catch(() => {
console.log('数据库添加失败');
res.sendStatus(400);
})
}
module.exports = {
add
}
请求示范
完整代码示例
文件夹
serve.js
const ip = require('ip')
const express = require('express')
let { init } = require('mysqls')
const user = require('./router/user')
const bodyParser = require('body-parser') // 获取post请求的参数
const port = 8849
const app = express()
// 连接数据库
init({
host: 'localhost',
user: 'root',
password: '123456',
database: 'myonline',
port: 3306,
})
// host: host地址 (default:'127.0.0.1')
// user: 用户名 (default:'root')
// password: 数据库密码 (default:'root')
// database: 使用的数据库 (default:'test')
// port: 端口 (default:'3306')
app.use(bodyParser.urlencoded({ extended: false })) // post请求获取body数据
app.use('/user', user) //使用express的中间件来实现模块化管理
app.use('/', function (req, res) {
res.send(request(404))
})
app.listen(port, () => {
console.log(`Example app listening at ${ip.address()}:${port}`)
})
./router/user.js
const express = require('express')
const app = express()
const userApi = require('../api/user') // 请求路由,userApi.getData是该路由的处理逻辑,为模块化在../api/user文件里写处理逻辑
app.post('/add', userApi.add)
app.use('/', function (req, res) {
res.send({
code:'404',
msg:'暂无路由'
})
})
module.exports = app
./api/user.js
let { exec, sql } = require('mysqls')
const add = (req, res) => {
let body = req.body
let { name, number, sex, phone } = body
let obj = { name, number, sex, phone }
exec(sql.table('user').data(obj).insert())
.then(() => {
res.send({
code: 200,
mag: '添加成功'
})
}).catch(() => {
console.log('数据库添加失败');
res.sendStatus(400);
})
}
module.exports = {
add
}