返回
用 Node.js + React 从头开始构建一个简单的 CRUD 应用
前端
2024-01-13 09:19:16
构建一个完整的 CRUD 应用的优点
构建一个完整的 CRUD 应用有很多优点,包括:
- 数据管理 :CRUD 应用允许您轻松地管理数据,例如创建、读取、更新和删除记录。
- 数据安全 :CRUD 应用可以帮助您保护数据,防止未经授权的访问和修改。
- 数据一致性 :CRUD 应用可以帮助您确保数据的一致性,这意味着数据在所有系统中都是相同的。
- 数据可用性 :CRUD 应用可以帮助您确保数据可用,这意味着数据可以在需要时被访问。
使用 Node.js + React 构建 CRUD 应用的步骤
1. 设置项目
首先,我们需要设置我们的项目。
1.1 创建 Node.js 项目
$ mkdir my-crud-app
$ cd my-crud-app
$ npm init -y
1.2 安装依赖项
$ npm install express mysql2 body-parser cors
1.3 创建数据库
$ mysql -u root -p
CREATE DATABASE my_crud_db;
1.4 创建数据表
$ mysql -u root -p my_crud_db
CREATE TABLE products (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (id)
);
2. 创建 Node.js 服务器
现在,我们需要创建一个 Node.js 服务器。
// server.js
const express = require('express');
const mysql = require('mysql2');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
app.use(bodyParser.json());
app.use(cors());
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'my_crud_db'
});
// Create a product
app.post('/products', (req, res) => {
const { name, price } = req.body;
connection.query('INSERT INTO products (name, price) VALUES (?, ?)', [name, price], (err, result) => {
if (err) {
res.status(500).send({ error: 'An error occurred while creating the product.' });
} else {
res.status(201).send({ success: 'Product created successfully.' });
}
});
});
// Get all products
app.get('/products', (req, res) => {
connection.query('SELECT * FROM products', (err, results) => {
if (err) {
res.status(500).send({ error: 'An error occurred while getting the products.' });
} else {
res.status(200).send({ products: results });
}
});
});
// Get a single product by id
app.get('/products/:id', (req, res) => {
const id = req.params.id;
connection.query('SELECT * FROM products WHERE id = ?', [id], (err, result) => {
if (err) {
res.status(500).send({ error: 'An error occurred while getting the product.' });
} else {
res.status(200).send({ product: result[0] });
}
});
});
// Update a product by id
app.put('/products/:id', (req, res) => {
const id = req.params.id;
const { name, price } = req.body;
connection.query('UPDATE products SET name = ?, price = ? WHERE id = ?', [name, price, id], (err, result) => {
if (err) {
res.status(500).send({ error: 'An error occurred while updating the product.' });