
- 后端(Node.js + Express + MongoDB)sidaotech.com
Node.js 和 Express 用于构建 API,MongoDB 作为数据库存储商品和用户信息。
安装依赖:
bash
npm init -y
npm install express mongoose body-parser cors
示例代码(Express 路由处理商品列表请求):
javascript
const express = require(‘express’);
const mongoose = require(‘mongoose’);
const bodyParser = require(‘body-parser’);
const cors = require(‘cors’);
const app = express();
const PORT = process.env.PORT || 3000;
// 连接 MongoDB
mongoose.connect(‘mongodb://localhost:27017/shoppingMall’, {
useNewUrlParser: true,
useUnifiedTopology: true
});
// 定义商品模型
const ProductSchema = new mongoose.Schema({
name: String,
price: Number,
description: String
});
const Product = mongoose.model(‘Product’, ProductSchema);
// 中间件
app.use(bodyParser.json());
app.use(cors());
// 路由
app.get(‘/products’, async (req, res) => {
try {
const products = await Product.find();
res.json(products);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// 启动服务器
app.listen(PORT, () => {
console.log(Server running on port ${PORT});
});
2. 前端(React)
使用 React 构建用户界面,通过 Axios 调用后端 API。
安装依赖:
bash
npx create-react-app shopping-mall-frontend
cd shopping-mall-frontend
npm install axios
示例组件(展示商品列表):
jsx
import React, { useEffect, useState } from ‘react’;
import axios from ‘axios’;
function ProductList() {
const [products, setProducts] = useState([]);
useEffect(() => {
axios.get('http://localhost:3000/products')
.then(response => {
setProducts(response.data);
})
.catch(error => {
console.error('Error fetching products:', error);
});
}, []);
return (
<div>
<h1>Products</h1>
<ul>
{products.map(product => (
<li key={product._id}>
{product.name} - ${product.price}
</li>
))}
</ul>
</div>
);
}
export default ProductList;
3. 其他技术栈
Python + Flask + SQLite:适合快速原型开发,使用 Flask 构建 API,SQLite 作为轻量级数据库。
Java + Spring Boot + MySQL:适合企业级应用,Spring Boot 提供丰富的库和框架支持,MySQL 是流行的关系型数据库。
PHP + Laravel + PostgreSQL:Laravel 提供优雅的语法和丰富的功能,PostgreSQL 是强大的开源对象-关系数据库系统。
每种技术栈都有其特点和适用场景,选择时需要考虑项目需求、团队熟悉度、性能要求等因素。由于直接提供完整的购物商城代码超出了简单回答的范围,并且会涉及多个技术栈(如前端、后端、数据库等),我将为你概述如何用几种不同的编程语言和技术栈来构建购物商城的基本架构,并给出一些关键部分的示例代码。
- 后端(Node.js + Express + MongoDB)
Node.js 和 Express 用于构建 API,MongoDB 作为数据库存储商品和用户信息。
安装依赖:
bash
npm init -y
npm install express mongoose body-parser cors
示例代码(Express 路由处理商品列表请求):
javascript
const express = require(‘express’);
const mongoose = require(‘mongoose’);
const bodyParser = require(‘body-parser’);
const cors = require(‘cors’);
const app = express();
const PORT = process.env.PORT || 3000;
// 连接 MongoDB
mongoose.connect(‘mongodb://localhost:27017/shoppingMall’, {
useNewUrlParser: true,
useUnifiedTopology: true
});
// 定义商品模型
const ProductSchema = new mongoose.Schema({
name: String,
price: Number,
description: String
});
const Product = mongoose.model(‘Product’, ProductSchema);
// 中间件
app.use(bodyParser.json());
app.use(cors());
// 路由
app.get(‘/products’, async (req, res) => {
try {
const products = await Product.find();
res.json(products);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// 启动服务器
app.listen(PORT, () => {
console.log(Server running on port ${PORT});
});
2. 前端(React)
使用 React 构建用户界面,通过 Axios 调用后端 API。
安装依赖:
bash
npx create-react-app shopping-mall-frontend
cd shopping-mall-frontend
npm install axios
示例组件(展示商品列表):
jsx
import React, { useEffect, useState } from ‘react’;
import axios from ‘axios’;
function ProductList() {
const [products, setProducts] = useState([]);
useEffect(() => {
axios.get('http://localhost:3000/products')
.then(response => {
setProducts(response.data);
})
.catch(error => {
console.error('Error fetching products:', error);
});
}, []);
return (
<div>
<h1>Products</h1>
<ul>
{products.map(product => (
<li key={product._id}>
{product.name} - ${product.price}
</li>
))}
</ul>
</div>
);
}
export default ProductList;
3. 其他技术栈
Python + Flask + SQLite:适合快速原型开发,使用 Flask 构建 API,SQLite 作为轻量级数据库。
Java + Spring Boot + MySQL:适合企业级应用,Spring Boot 提供丰富的库和框架支持,MySQL 是流行的关系型数据库。
PHP + Laravel + PostgreSQL:Laravel 提供优雅的语法和丰富的功能,PostgreSQL 是强大的开源对象-关系数据库系统。
每种技术栈都有其特点和适用场景,选择时需要考虑项目需求、团队熟悉度、性能要求等因素。er_to_guess}。")

被折叠的 条评论
为什么被折叠?



