第六章:Express框架实战

作者:Administrator 发布时间: 2026-03-13 阅读量:6 评论数:0

第六章:Express框架实战

6.1 Express基础

npm init -y
npm install express
const express = require('express');
const app = express();
​
app.get('/', (req, res) => {
    res.send('Hello, Express!');
});
​
app.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

6.2 路由

const express = require('express');
const app = express();
​
// GET请求
app.get('/users', (req, res) => {
    res.send('获取用户列表');
});
​
// POST请求
app.post('/users', (req, res) => {
    res.send('创建用户');
});
​
// 带参数
app.get('/users/:id', (req, res) => {
    res.send(`用户ID: ${req.params.id}`);
});
​
// 查询参数
app.get('/search', (req, res) => {
    res.send(`搜索: ${req.query.q}`);
});
​
app.listen(3000);

6.3 中间件

const express = require('express');
const app = express();
​
// 日志中间件
app.use((req, res, next) => {
    console.log(`${req.method} ${req.url}`);
    next();
});
​
// 解析JSON
app.use(express.json());
​
// 静态文件
app.use(express.static('public'));
​
// 路由
app.get('/', (req, res) => {
    res.send('Hello');
});
​
// 错误处理
app.use((err, req, res, next) => {
    console.error(err);
    res.status(500).send('Server Error');
});
​
app.listen(3000);

6.4 路由模块化

// routes/users.js
const express = require('express');
const router = express.Router();
​
router.get('/', (req, res) => {
    res.json({ users: [] });
});
​
router.get('/:id', (req, res) => {
    res.json({ user: { id: req.params.id } });
});
​
router.post('/', (req, res) => {
    res.status(201).json({ message: 'Created' });
});
​
module.exports = router;
// app.js
const express = require('express');
const app = express();
​
const usersRouter = require('./routes/users');
app.use('/api/users', usersRouter);
​
app.listen(3000);

6.5 文件上传

const express = require('express');
const multer = require('multer');
​
const app = express();
​
const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'uploads/');
    },
    filename: (req, file, cb) => {
        cb(null, Date.now() + '-' + file.originalname);
    }
});
​
const upload = multer({ storage });
​
app.post('/upload', upload.single('file'), (req, res) => {
    res.json({ file: req.file });
});
​
app.listen(3000);

评论