以下是一个简单的 Node.js 和 Express.js 结合 MySQL 数据库的示例,用于演示如何使用 Node.js 和 Express.js 在服务器端创建一个 REST API 接口。
以下操作需要确保你的电脑安装了: node
环境和mysql
环境
使用以下命令安装 express
、body-parser
和 mysql
模块:
win+R键盘打开终端
输入:
1、mkdir demo 新建demo文件夹
2、cd demo 进入demo文件夹的路径
//初始化项目,执行 npm init -y 命令后,npm 会自动创建一个 package.json 文件,其中包含一些默认配置,如项目名称、版本、作者等。开发者可以在之后根据实际情况修改这些配置信息,并在其中添加项目所需的依赖
3、npm init -y
// 安装node项目所需的依赖
4、npm install express body-parser mysql --save
在根目录下创建一个名为 server.js
的文件,并编写如下代码:
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const app = express();
app.use(bodyParser.json());
const connection = mysql.createConnection({
host: 'localhost',
//数据库用户名
user: 'root',
//数据库密码
password: 'password',
//需要操作的数据库名字
database: 'my_db'
});
connection.connect(err => {
if (err) {
console.log('Error connecting to Database');
return;
}
console.log('Connected to Database');
});
// 允许跨域访问
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With');
res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE');
if (req.method == "OPTIONS") {
res.sendStatus(200);
} else {
next();
}
});
app.get('/api/users', (req, res) => {
const sql = 'SELECT * FROM user';
connection.query(sql, (err, results, fields) => {
if (err) {
console.log('Error while querying database');
return;
}
res.json(results);
});
});
app.post('/api/users', (req, res) => {
const user = req.body;
const sql = 'INSERT INTO user SET ?';
connection.query(sql, user, (err, results, fields) => {
if (err) {
console.log('Error while inserting data');
return;
}
res.json(results);
});
});
app.put('/api/users/:id', (req, res) => {
const id = req.params.id;
const user = req.body;
const sql = 'UPDATE user SET ? WHERE id = ?';
connection.query(sql, [user, id], (err, results, fields) => {
if (err) {
console.log('Error while updating data');
return;
}
res.json(results);
});
});
app.delete('/api/users/:id', (req, res) => {
const id = req.params.id;
const sql = 'DELETE FROM user WHERE id = ?';
connection.query(sql, id, (err, results, fields) => {
if (err) {
console.log('Error while deleting data');
return;
}
res.json(results);
});
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
以上代码中req和res的区别:
req对象
:
req
对象是只读的,不应该手动修改它的属性;req
对象通常在回调函数中使用;res对象
:
res
对象拥有一组状态码,用于响应请求结果,如200代表成功,404代表未找到等;res
对象同样是只读的;以上代码创建了一个 Express 应用程序,并在 /api/users
路径下创建了 REST API 接口,包含获取所有用户、添加用户、修改用户和删除用户这四种操作。
在终端中运行以下命令启动应用程序:
node server.js
使用 HTTP 客户端(如 Postman)访问以下地址,测试接口是否正常:
http://localhost:3000/api/users
http://localhost:3000/api/users
,类型为 POST,请求体为 JSON 格式的用户信息http://localhost:3000/api/users/{id}
,类型为 PUT,请求体为 JSON 格式的用户信息http://localhost:3000/api/users/{id}
,类型为 DELETE以上是一个简单的 Node.js 和 Express.js 结合 MySQL 数据库的使用示例。在实际开发中,可以根据需求对代码进行修改和扩展。