# node-express **Repository Path**: JohnCheng/node-express ## Basic Information - **Project Name**: node-express - **Description**: node搭建express用于api调用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-23 - **Last Updated**: 2024-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Express ### 1.初始化项目 ```javascript pnpm init ``` ### 2.Express 介绍和安装 Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。 ```javascript pnpm install express ``` #### 2.1 配置以及启动 http 服务 ```javascript const express = require("express"); const app = express(); const port = 3000; app.get("/", (req, res) => { res.send("Hello World!"); }); app.listen(port, () => { console.log(`Example app listening on port ${port}`); }); ``` #### 2.2 启动服务 ```javascript node app.js ``` #### 2.3 访问服务 ```javascript http://localhost: 3000; ``` ### 3.安装和访问 mysql #### 3.1 安装 mysql ```javascript pnpm install mysql ``` #### 3.2 配置链接信息 ```javascript var mysql = require("mysql"); var connection = mysql.createConnection({ host: "localhost", user: "root", password: "123456", database: "zx_rise_booksystem", }); connection.connect(); connection.query("", function (err, rows, fields) { if (err) { console.log("The solution is:", rows[0]["solution"]); } else { console.log("success", rows[0]["solution"]); } }); connection.end(); ``` #### 3.4 访问 mysql ```javascript http://localhost: 3000; // 控制台信息 Example app listening on port 3000 success 2 ``` #### 3.5 抽取配置文件 1、创建 config.js 文件 ```javascript const configs = { mysql: { host: "127.0.0.1", user: "root", password: "123456", database: "zx_rise_booksystem", }, }; module.exports = configs; ``` 2、app.js 导入并使用配置 ```javascript const configs = require("./config"); var mysql = require("mysql"); var connection = mysql.createConnection(configs.mysql); connection.connect(); connection.query("select 1 + 1 as solution", function (err, rows, fields) { if (err) throw err; console.log("The solution is:", rows[0]["solution"]); }); connection.end(); ``` ### 4.crud 接口的实现 ```javascript /** * get请求 返回json格式list数据 */ app.get("/get", (req, res) => { var sql = `SELECT * FROM Book`; if (req.query.BookName) { sql = `SELECT * FROM book Where BookName Like'%${req.query.BookName}%'`; } connection.query(sql, (err, rows) => { if (!err) { res.send(rows); } else { res.send(err); } }); }); /** * post请求 添加 */ app.post("/add", (req, res) => { let sql = `INSERT into book(BookName,Author,TypeName,Remarks) VALUES('${req.body.BookName}','${req.body.Author}','${req.body.TypeName}','${req.body.Remarks}')`; connection.query(sql, (err, rows) => { if (!err) { res.send("操作成功!"); } else { res.send(err); } }); }); /** * post请求 编辑 */ app.post("/edit", (req, res) => { let sql = `UPDATE book SET BookName='${req.body.BookName}', Author='${req.body.Author}', TypeName='${req.body.TypeName}', Remarks='${req.body.Remarks}' where id=${req.body.Id}`; connection.query(sql, (err, rows) => { if (!err) { res.send("操作成功!"); } else { res.send(err); } }); }); /** * get请求 删除 */ app.get("/del", (req, res) => { let sql = `DELETE FROM book where Id=${req.body.Id};`; connection.query(sql, (err, rows) => { if (!err) { res.send("操作成功!"); } else { res.send(err); } }); }); ``` ### 5.接口参数的解析(补充) ```javascript // 安装依赖 pnpm install body-parser // 引入body-parse var bodyParser = require("body-parser"); // 解析应用程序 x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })); // 解析application/json app.use(bodyParser.json()); ``` ### 6.sql 文件 ```sql 当前文件夹下: zx_rise_booksystem.sql ```