STRAT
- 最近买了个服务器。作为一个前端,还是想全凭自己做一个简易的系统玩一玩。所以开始自己研究搭建一个简单的后台。
- 做了一个简单的后端服务,写个博客记录一下。
- 数据库相关说明暂时略过,后期有时间再补充了
- 作者: lazy_tomato 2022/03/28-20/22
安装依赖
# 处理post请求的
npm i body-parser
# 基本后端框架
npm i express
# 连接mysql的工具
npm i mysql
# node热启动插件
npm i nodemon
"dependencies": {
"body-parser": "^1.19.2",
"express": "^4.17.2",
"mysql": "^2.18.1",
"nodemon": "^2.0.15"
}
运行脚本
"scripts": {
"dev": "npx nodemon server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
目录结构

主要文件
server.js
const express = require('express')
const bodyParser = require('body-parser')
const router = require('./app/router/router')
const app = express()
// 跨域请求处理
app.all('*', (req, res, next) => {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'X-Requested-With')
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, X_Requested_With')
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS')
//允许接收的请求头上加上一个Authorization,这样我们才能够将数据发送过去
res.header('X-Powered-By', '3.2.1')
if (req.method == 'OPTIONS') res.send(200)
/*让options请求快速返回*/ else next()
})
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(router)
// 3000 8080 9527 5000
app.listen('5000', () => {
console.log('Server is running 5000');
})
db.js
// 1.引入mysql连接插件
var mysql = require('mysql')
// 2.通过插件生成一个连接池,传入参数为数据库配置
var pool = mysql.createPool({
host: 'localhost', // 本机IP
user: 'root', // 用户名
password: '123456', // 密码
database: 'healthy' // 数据库名称
});
// 3.定义一个查询数据库的方法
var query = function (sql, callback) {
// 3.1 创建一个连接
pool.getConnection(function (err, conn) {
if (err) {
callback(err, null, null);
} else {
conn.query(sql, function (qerr, vals, fields) {
// 3.2 释放连接 *这个地方需要注意,查看了很多文章,释放连接应当在 conn.query 方法中*
conn.release();
// 3.3 回调
callback(qerr, vals, fields);
});
}
});
};
// 4.导出查询的方法
module.exports = query;
router.js
const express = require('express')
const query = require('../modul/db.js')
const router = express.Router()
// 获取所有部门信息
router.get('/', (req, res) => {
res.send('欢迎访问lazy_tomato服务')
})
// 测试数据库连接接口
router.get('/demo', (req, res) => {
let sql = `SELECT * FROM account`
query({
sql: sql
}, (err, results) => {
if (err) {
console.log(err)
} else {
res.send(results)
}
})
})
运行效果

END
版权声明:本文为wswq2505655377原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。