安装与配置 #

一、环境准备 #

1.1 安装Node.js #

检查是否已安装:

bash
node --version
npm --version

安装方式:

方式 说明
官网安装包 nodejs.org下载
nvm Node版本管理器(推荐)
Homebrew macOS包管理器

使用nvm安装(推荐):

bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

nvm install --lts
nvm use --lts

使用Homebrew安装(macOS):

bash
brew install node

1.2 验证安装 #

bash
node --version
npm --version

输出示例:

text
v20.10.0
10.2.3

1.3 npm基础 #

npm常用命令:

bash
npm init                    npm init -y
npm install                 npm install express
npm install --save-dev jest npm uninstall express
npm update                  npm list

二、创建Express项目 #

2.1 方式一:手动创建 #

步骤1:创建项目目录

bash
mkdir my-express-app
cd my-express-app

步骤2:初始化项目

bash
npm init -y

生成的 package.json

json
{
  "name": "my-express-app",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

步骤3:安装Express

bash
npm install express

步骤4:创建入口文件

创建 index.js

javascript
const express = require('express');
const app = express();
const PORT = 3000;

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

app.listen(PORT, () => {
    console.log(`服务器运行在 http://localhost:${PORT}`);
});

步骤5:运行项目

bash
node index.js

2.2 方式二:使用Express生成器 #

安装生成器:

bash
npm install -g express-generator

创建项目:

bash
express my-app
cd my-app
npm install

生成的项目结构:

text
my-app/
├── bin/
│   └── www
├── public/
│   ├── images/
│   ├── javascripts/
│   └── stylesheets/
├── routes/
│   ├── index.js
│   └── users.js
├── views/
│   ├── error.jade
│   ├── index.jade
│   └── layout.jade
├── app.js
└── package.json

运行项目:

bash
npm start

三、项目配置 #

3.1 package.json配置 #

json
{
  "name": "my-express-app",
  "version": "1.0.0",
  "description": "My Express Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "jest"
  },
  "keywords": ["express", "nodejs"],
  "author": "Your Name",
  "license": "MIT",
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "nodemon": "^3.0.1"
  }
}

3.2 环境变量配置 #

安装dotenv:

bash
npm install dotenv

创建 .env 文件:

text
PORT=3000
NODE_ENV=development
DB_HOST=localhost
DB_PORT=27017

使用环境变量:

javascript
require('dotenv').config();

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

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {
    console.log(`服务器运行在端口 ${PORT}`);
});

3.3 开发工具配置 #

安装nodemon(热重载):

bash
npm install --save-dev nodemon

package.json添加脚本:

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

运行开发模式:

bash
npm run dev

四、项目结构最佳实践 #

4.1 基础结构 #

text
my-app/
├── src/
│   ├── routes/
│   │   ├── index.js
│   │   └── users.js
│   ├── controllers/
│   ├── models/
│   ├── middlewares/
│   ├── utils/
│   └── app.js
├── public/
├── tests/
├── .env
├── .gitignore
├── package.json
└── README.md

4.2 MVC结构 #

text
my-app/
├── config/
│   ├── database.js
│   └── config.js
├── controllers/
│   ├── userController.js
│   └── authController.js
├── models/
│   ├── User.js
│   └── Post.js
├── routes/
│   ├── index.js
│   ├── userRoutes.js
│   └── authRoutes.js
├── middlewares/
│   ├── auth.js
│   └── errorHandler.js
├── views/
│   ├── layouts/
│   ├── partials/
│   └── pages/
├── public/
│   ├── css/
│   ├── js/
│   └── images/
├── utils/
│   └── helpers.js
├── tests/
├── app.js
├── server.js
├── .env
└── package.json

4.3 入口文件分离 #

server.js:

javascript
const app = require('./app');
const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {
    console.log(`服务器运行在端口 ${PORT}`);
});

app.js:

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

const routes = require('./routes');

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use('/api', routes);

app.use((err, req, res, next) => {
    res.status(500).json({ error: err.message });
});

module.exports = app;

五、常用开发依赖 #

5.1 开发工具 #

bash
npm install --save-dev nodemon
npm install --save-dev eslint
npm install --save-dev prettier
npm install --save-dev jest

5.2 生产依赖 #

bash
npm install express
npm install dotenv
npm install cors
npm install helmet
npm install morgan
npm install compression

5.3 完整安装示例 #

bash
npm init -y
npm install express dotenv cors helmet morgan compression
npm install --save-dev nodemon eslint prettier jest

六、ESLint配置 #

6.1 安装ESLint #

bash
npm install --save-dev eslint
npx eslint --init

6.2 配置文件 .eslintrc.js #

javascript
module.exports = {
    env: {
        node: true,
        es2021: true,
    },
    extends: 'eslint:recommended',
    parserOptions: {
        ecmaVersion: 'latest',
        sourceType: 'module',
    },
    rules: {
        'no-unused-vars': 'warn',
        'no-console': 'off',
        'indent': ['error', 2],
        'quotes': ['error', 'single'],
        'semi': ['error', 'always'],
    },
};

七、Git配置 #

7.1 初始化Git #

bash
git init
git add .
git commit -m "Initial commit"

7.2 .gitignore文件 #

text
node_modules/
.env
.DS_Store
*.log
npm-debug.log*
coverage/
.idea/
.vscode/
dist/
build/

八、VS Code配置 #

8.1 推荐扩展 #

扩展 说明
ESLint 代码检查
Prettier 代码格式化
Node.js Tools Node.js支持
REST Client API测试
Thunder Client API测试

8.2 launch.json配置 #

json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}/index.js",
      "envFile": "${workspaceFolder}/.env"
    }
  ]
}

九、验证安装 #

9.1 创建测试文件 #

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

app.get('/', (req, res) => {
    res.json({ 
        message: 'Express安装成功!',
        nodeVersion: process.version,
        expressVersion: require('express/package.json').version
    });
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`服务器运行在 http://localhost:${PORT}`);
});

9.2 运行测试 #

bash
node index.js

访问 http://localhost:3000,看到JSON响应表示安装成功。

十、总结 #

安装配置要点:

步骤 说明
安装Node.js 使用nvm或官网安装包
创建项目 npm init初始化
安装Express npm install express
配置环境 使用dotenv管理环境变量
开发工具 nodemon实现热重载

下一步,让我们创建第一个Express应用!

最后更新:2026-03-28