建立一个项目
然后初始化项目npm init -y
然后安装我们项目中需要使用到的依赖
//package.json
{
"name": "holiday_work_serve",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.20.1",
"express": "^4.18.2",
"koa": "^2.14.1",
"koa-body": "4.2.0",
"koa-router": "10.0.0",
"mockjs": "1.1.0",
"mysql": "^2.18.1"
},
"devDependencies": {
"koa-static": "5.0.0"
}
}
然后我们创建我们的app.js启动项目,输入如下命令则成功通过express启动我们本地服务
输入如下代码则可以实现espress连接mysql数据库并查询数据库
const express = require("express");
let app = express();
const mysql = require('mysql');
let bodyParser = require('body-parser');
let sqlStr = "";
//连接数据库
const db = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'login',
})
// 中间件定义post传递的格式
app.use(express.json())
app.use(bodyParser.urlencoded({ extended: true }));//Context-Type 为application/x-www-form-urlencoded 时 返回的对象是一个键值对,当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
app.use(bodyParser.json());//用于解析json 会自动选择最为适宜的解析方式
app.get('/getlist', (req, res) => {
sqlStr = 'select * from login_table'
db.query(sqlStr, async (err, results) => {
// 失败
if (err) {
return console.log(err.message)
}
// /配置请求的域名,*代表任意
res.header("Access-Control-Allow-Origin", "*");
// 支持跨域请求类型
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
//配置请求头信息,包含字符集等等
res.header("Content-Type", "application/json;charset=utf-8");
console.log(res.username());
res.send({
code: 200,
message: "数据查询成功",
data: results
})
})
})
app.listen(8091, (err) => {
if (!err) {
console.log("服务已启动");
}
})
我们像统一返回数据格式,我们可以:
//dataRequertState.js逻辑代码
module.exports = (req,res, next) => {
res.setUnifyResFormat = (data,code,message) => {
let res = {}
if(code === 200) {
res = {
status: code,
message,
data,
}
} else {
res = {
status: code,
message
}
}
return res
};
next()
}
而我们只需要直接app.use这个中间件就好了
代码如下:
const express = require("express");
let app = express();
const mysql = require('mysql')
let bodyParser = require('body-parser');
let standardFrom = require("./user");
let sqlStr = "";
//连接数据库
const db = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'login',
})
// 中间件定义post传递的格式
app.use(express.json())
app.use(bodyParser.urlencoded({ extended: true }));//Context-Type 为application/x-www-form-urlencoded 时 返回的对象是一个键值对,当extended为false的时候,键值对中的值就为'String'或'Array'形式,为true的时候,则可为任何数据类型。
app.use(bodyParser.json());//用于解析json 会自动选择最为适宜的解析方式
app.use(standardFrom);
app.get('/getlist', (req, res) => {
sqlStr = 'select * from login_table'
db.query(sqlStr, async (err, results) => {
// 失败
if (err) {
return console.log(err.message)
}
// /配置请求的域名,*代表任意
res.header("Access-Control-Allow-Origin", "*");
// 支持跨域请求类型
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
//配置请求头信息,包含字符集等等
res.header("Content-Type", "application/json;charset=utf-8");
console.log("查询成功");
res.send(res.standardFrom(200,results,"查询成功"));
})
})
app.listen(8091, (err) => {
if (!err) {
console.log("服务已启动");
}
})