快速创建nodejs项目,连接MySQL实现增删改查
准备工作
运行环境
tex> node -v v20.2.0 > mysql --help mysql Ver 14.14 Distrib 5.7.41, for Win64 (x86_64) Copyright (c) 2000, 2023, Oracle and/or its affiliates.创建数据库和测试表
mysqlCREATE DATABASE `vitepress-docs-demos` /*!40100 DEFAULT CHARACTER SET utf8mb4 */mysqlCREATE TABLE `t_user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(500) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4初始化package.json
texnpm init -y
安装依赖
texnpm install expresstexnpm install corstexnpm install mysql创建db/config.js, 用于配置mysql数据库
javascriptlet mysql = require('mysql') let db = mysql.createPool({ host: '127.0.0.1', // 数据库IP地址 port: 3306, // 数据库端口 user: 'root', // 数据库登录账号 password: 'root', // 数据库登录密码 database: 'vitepress-docs-demos', // 要操作的数据库 charset: 'utf8mb4' // 数据库字符集,涉及表情的存储,所以创建数据库时指定为utf8mb4 }) module.exports = db创建测试接口api/user.js
javascriptconst db = require('../db/config') exports.getUserById = (req, res) => { // get请求用req.query.参数名 // post请求用req.body.参数名 const id = req.query.id; var sql = ` select * from t_user where id = ? `; // 第二个参数的数量是可变的,有几个占位符数组里就几个参数值 db.query(sql, [id], (error, result) => { if (error) { res.send(error); } res.send(result); }); }配置接口路由,创建router.js
javascriptconst express = require('express') const router = express.Router() // 接口集合 const user = require('./api/user') router.get('/api/user/getUserById', user.getUserById) module.exports = router创建app.js, 用于配置服务器相关信息
javascriptlet express = require('express') let app = express() let cors = require('cors') let bodyParser = require('body-parser') let router = require('./router') // 配置解析,用于解析json和urlencoded格式的数据 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); //配置跨域,必须在路由之前 app.use(cors()); // 路由列表 app.use(router); // 解决跨域 app.all('*', function (req, res, next) { res.header('Access-Control-Allow-Origin', '*') res.header('Access-Control-Allow-Headers', 'Content-Type') res.header('Access-Control-Allow-Methods', '*') res.header('Content-Type', 'application/json;charset=utf-8') next() }) app.listen(80, () => { console.log('服务器启动成功'); })创建完毕后的目录结构, 在项目根目录下执行 node app.js 开启项目
texvitepress-docs-node ┣ api ┃ ┗ user.js ┣ db ┃ ┗ config.js ┣ .gitignore ┣ app.js ┣ package-lock.json ┣ package.json ┗ router.js使用工具进行测试
