使用Node.js和MySQL创建购物商城

在现代社会,电子商务已经成为了人们购物的主要方式之一。为了满足不断增长的需求,开发人员需要使用强大的技术来构建高效的购物商城。Node.js和MySQL是两个非常强大的工具,它们可以帮助我们构建原生JavaScript的购物商城。

Node.js简介

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它可以让JavaScript在服务器端运行。Node.js具有轻量级、高效和可扩展的特性,使其成为构建实时应用程序的理想选择。

MySQL简介

MySQL是一个开源的关系型数据库管理系统,它使用SQL语言进行数据访问和管理。MySQL具有高性能、稳定可靠和可扩展的特性,适用于各种规模的应用程序。

构建购物商城

为了演示如何使用Node.js和MySQL构建购物商城,我们将创建一个简单的示例。我们将实现以下功能:

  1. 用户注册和登录
  2. 商品展示和搜索
  3. 购物车管理
  4. 订单管理

首先,我们需要安装Node.js和MySQL,并创建一个新的项目文件夹。在终端中导航到该文件夹,并执行以下命令来初始化我们的项目:

$ npm init

接下来,我们需要安装一些必要的Node.js模块。我们将使用Express框架来构建我们的Web应用程序,并使用mysql模块连接到MySQL数据库。在终端中执行以下命令来安装这些模块:

$ npm install express mysql

一旦我们安装了这些模块,我们可以开始编写我们的代码了。

用户注册和登录

首先,我们创建一个名为app.js的文件,并导入所需的模块:

const express = require('express');
const mysql = require('mysql');

const app = express();
const port = 3000;

// 连接到MySQL数据库
const db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'shopping_mall'
});

db.connect((err) => {
  if (err) throw err;
  console.log('Connected to MySQL database');
});

// 注册新用户
app.post('/register', (req, res) => {
  const { username, password } = req.body;
  const sql = `INSERT INTO users (username, password) VALUES ('${username}', '${password}')`;

  db.query(sql, (err, result) => {
    if (err) throw err;
    res.send('User registered successfully');
  });
});

// 用户登录
app.post('/login', (req, res) => {
  const { username, password } = req.body;
  const sql = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;

  db.query(sql, (err, result) => {
    if (err) throw err;
    if (result.length > 0) {
      res.send('Login successful');
    } else {
      res.send('Invalid username or password');
    }
  });
});

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

我们定义了两个路由/register/login,分别用于用户注册和登录。在注册路由中,我们从请求体中获取用户名和密码,并将其插入到users表中。在登录路由中,我们使用提供的用户名和密码在users表中进行查询,如果找到匹配的用户,则返回登录成功的消息,否则返回无效的用户名或密码的消息。

商品展示和搜索

接下来,我们创建一个名为products.js的文件,并导入所需的模块:

const express = require('express');
const mysql = require('mysql');

const app = express();
const port = 3000;

// 连接到MySQL数据库
const db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'shopping_mall'
});

db.connect((err) => {
  if (err) throw err;
  console.log('Connected to MySQL database');
});

// 获取所有商品
app.get('/products', (req, res) => {
  const sql = 'SELECT * FROM products';

  db.query(sql, (err, result) => {
    if (err) throw err;