Express.js框架简介及使用示例

发布于:2025-09-14 ⋅ 阅读:(24) ⋅ 点赞:(0)

Express.js 框架简介

Express.js 是 Node.js 中最流行的 Web 应用框架,它提供了一系列强大的功能来帮助开发者构建 Web 和移动应用程序。下面我将通过一个简单的示例来展示 Express 的基本用法。

实现思路

我将创建一个简单的 Express 服务器,包含以下功能:

  • 基本路由处理

  • 静态文件服务

  • 中间件使用

  • 模板引擎渲染

代码实现

html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Express.js 框架简介</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        body {
            background-color: #f5f5f5;
            color: #333;
            line-height: 1.6;
            padding: 20px;
        }
        .container {
            max-width: 1000px;
            margin: 0 auto;
            background: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 0 20px rgba(0,0,0,0.1);
        }
        header {
            text-align: center;
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 2px solid #f0f0f0;
        }
        h1 {
            color: #4a4a4a;
            margin-bottom: 10px;
        }
        .subtitle {
            color: #666;
            font-size: 1.2em;
        }
        .logo {
            font-size: 3em;
            margin-bottom: 20px;
            color: #323232;
        }
        .content {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
        }
        .card {
            background: #f9f9f9;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.05);
        }
        h2 {
            color: #5a5a5a;
            margin-bottom: 15px;
            padding-bottom: 10px;
            border-bottom: 1px solid #eaeaea;
        }
        h3 {
            margin: 15px 0 10px;
            color: #6a6a6a;
        }
        ul {
            list-style-type: none;
            margin: 15px 0;
        }
        li {
            margin-bottom: 8px;
            padding-left: 20px;
            position: relative;
        }
        li:before {
            content: "•";
            color: #0078d7;
            position: absolute;
            left: 0;
        }
        code {
            background: #272822;
            color: #f8f8f2;
            padding: 15px;
            border-radius: 5px;
            display: block;
            overflow-x: auto;
            margin: 15px 0;
            font-family: 'Fira Code', monospace;
            font-size: 0.9em;
        }
        .inline-code {
            background: #e8e8e8;
            color: #d63384;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: 'Fira Code', monospace;
        }
        .footer {
            text-align: center;
            margin-top: 30px;
            color: #888;
            font-size: 0.9em;
        }
        @media (max-width: 768px) {
            .content {
                grid-template-columns: 1fr;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <div class="logo">Express.js</div>
            <h1>Node.js Web 应用框架</h1>
            <p class="subtitle">快速、极简、灵活的 Node.js Web 框架</p>
        </header>

        <div class="content">
            <div class="card">
                <h2>什么是 Express?</h2>
                <p>Express 是一个基于 Node.js 平台的极简、灵活的 Web 应用开发框架,它提供了一系列强大的特性来帮助创建各种 Web 和移动应用。</p>
                
                <h3>核心特性:</h3>
                <ul>
                    <li>简化了路由处理</li>
                    <li>集成了视图渲染支持</li>
                    <li>包含大量中间件</li>
                    <li>高性能和可扩展性</li>
                    <li>庞大的生态系统</li>
                </ul>
            </div>

            <div class="card">
                <h2>基本用法</h2>
                <p>下面是一个简单的 Express 应用程序示例:</p>
                
                <code>const express = require('express');
const app = express();
const port = 3000;

// 基本路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器运行在 http://localhost:${port}`);
});</code>
            </div>

            <div class="card">
                <h2>中间件概念</h2>
                <p>Express 应用本质上是一系列中间件函数的调用。</p>
                
                <h3>常见中间件:</h3>
                <ul>
                    <li><span class="inline-code">express.json()</span> - 解析 JSON 请求体</li>
                    <li><span class="inline-code">express.urlencoded()</span> - 解析 URL 编码的请求体</li>
                    <li><span class="inline-code">express.static()</span> - 提供静态文件服务</li>
                    <li><span class="inline-code">morgen</span> - HTTP 请求日志记录</li>
                </ul>
            </div>

            <div class="card">
                <h2>路由示例</h2>
                <p>Express 提供了直观的路由定义方法:</p>
                
                <code>// 基本路由
app.get('/api/users', (req, res) => {
  res.json([{name: '张三'}, {name: '李四'}]);
});

// 带参数的路由
app.get('/api/users/:id', (req, res) => {
  const userId = req.params.id;
  res.json({id: userId, name: '王五'});
});

// POST 请求处理
app.post('/api/users', (req, res) => {
  // 创建新用户
  res.status(201).send('用户创建成功');
});</code>
            </div>
        </div>

        <div class="footer">
            <p>Express.js - 最受欢迎的 Node.js Web 框架 | 自 2010 年发布以来一直是 Node.js 生态系统的重要组成部分</p>
        </div>
    </div>

    <script>
        // 这里只是展示前端代码,实际的Express应用运行在Node.js环境中
        console.log("这是一个前端页面,实际Express应用运行在服务器端");
    </script>
</body>
</html>

Express.js 的关键特点

  1. 轻量且灵活:Express 不强制任何特定的项目结构,让开发者可以根据需要自由组织代码。

  2. 中间件架构:通过中间件处理请求和响应,可以轻松添加各种功能。

  3. 路由系统:提供了强大的路由机制,可以定义各种 HTTP 方法和路径的处理程序。

  4. 模板引擎集成:支持多种模板引擎(如 Pug、EJS、Handlebars)。

  5. 错误处理:提供了方便的错误处理机制。

Express.js 是构建 Node.js Web 应用程序的事实标准,许多其他框架(如 Feathers、Sails 等)都是基于 Express 构建的。