认识 Express

Node.js 本身对 http 模块封装的不够方便,于是相应的 web 开发框架便应运而生,express是使用比较多的,express 比较轻量级,围绕 http 模块进行了封装,但是支持很多扩展使它变得非常强大。

安装 express

当然前提是有 node 环境,安装过了 npm

1
$ npm install express-generator -g

查看帮助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ express --help

Usage: express [options] [dir]

Options:

-h, --help output usage information
-V, --version output the version number
-e, --ejs add ejs engine support (defaults to jade)
--hbs add handlebars engine support
-H, --hogan add hogan.js engine support
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory

通过查看帮助可以看到 express 支持的扩展, ejs | jade | Hogan.js | handlebars 模板引擎, less|stylus|compass|sass 处理生成 css。

创建项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 创建一个名为 rent 的项目
$ express rent

create : rent
create : rent/package.json
create : rent/app.js
create : rent/public
create : rent/routes
create : rent/routes/index.js
create : rent/routes/users.js
create : rent/public/images
create : rent/public/stylesheets
create : rent/public/stylesheets/style.css
create : rent/views
create : rent/views/index.jade
create : rent/views/layout.jade
create : rent/views/error.jade
create : rent/bin
create : rent/bin/www

install dependencies:
$ cd rent && npm install

run the app:
$ DEBUG=rent:* npm start

create : rent/public/javascripts

根据上面的提示继续安装依赖

1
2
3
4
5
# 进入目录
$ cd rent

# 安装依赖
$ npm install

项目的目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
rent
├── app.js
├── bin
│   └── www
├── node_modules
│   ├── body-parser
│   ├── cookie-parser
│   ├── debug
│   ├── express
│   ├── jade
│   ├── morgan
│   └── serve-favicon
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
├── routes
│   ├── index.js
│   └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade

app.js文件:应用程序的入口文件。
node_modules目录:安装了哪些模块。
public目录: 存放图片、css和 js 脚本等资源。
routes目录: 路由的处理程序。
views目录:存放模板视图

参考链接

https://expressjs.com/en/starter/generator.html

文章来自: https://hanks.pub