Express.js 快速入门指南

一、简介

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架。

环境准备

  • 安装 Node.js
  • 推荐使用 nvm 管理 Node.js 版本

二、项目创建

方式一:手动创建项目

# 创建项目目录
mkdir express-demo
cd express-demo

# 初始化项目
npm init -y

# 安装 Express
npm install express

创建入口文件 index.js:

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(3000, () => {
  console.log("Server running at http://localhost:3000")
})

运行项目:

node index.js

方式二:使用 Express 生成器

# 全局安装生成器
npm install -g express-generator

# 创建项目
express express-demo
cd express-demo
npm install
npm start

三、开发工具配置

热更新配置

安装 nodemon 实现代码热更新:

npm install --save-dev nodemon

修改 package.json:

{
  "scripts": {
    "dev": "nodemon index.js"
  }
}

启动开发服务器:

npm run dev

四、路由基础

基本路由

app.get('/', (req, res) => {
  res.send('Home Page')
})

app.post('/', (req, res) => {
  res.send('POST request received')
})

模块化路由

创建 routes/users.js:

const express = require('express')
const router = express.Router()

router.get('/', (req, res) => {
  res.send('User List')
})

router.get('/:id', (req, res) => {
  res.send(`User ID: ${req.params.id}`)
})

module.exports = router

主文件引入:

const userRouter = require('./routes/users')
app.use('/users', userRouter)

五、中间件

基本中间件

// 日志中间件
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url}`)
  next()
})

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

静态文件服务

app.use(express.static('public'))

六、数据库集成

MongoDB 集成

npm install mongoose

使用示例:

const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/mydb')

const User = mongoose.model('User', { 
  name: String,
  age: Number 
})

const user = new User({ name: 'Alice', age: 30 })
user.save()

MySQL 集成

npm install mysql2

使用示例:

const mysql = require('mysql2')
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'test'
})

connection.query(
  'SELECT * FROM users',
  (err, results) => {
    console.log(results)
  }
)

七、生产环境部署

PM2 进程管理

npm install pm2 -g
pm2 start index.js

Nginx 反向代理

server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

八、最佳实践

  1. 使用环境变量管理配置
  2. 实现日志记录
  3. 添加输入验证
  4. 实现错误处理中间件
  5. 编写单元测试

总结

本指南涵盖了 Express.js 的核心功能和使用方法,从项目创建到生产部署的全流程。

以上来自Juleon博客,转载请注明出处。