一、基本概念
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站,它有一套健壮的特性,可用于开发单页、多页和混合Web应用。
二、快速开始
1.首先假设你已经安装了Node.js(若未安装,请先安装Node.js),接下来创建一个工作目录。
$ mkdir express-start
$ cd express-start
2.通过npm init命令为你的应用创建一个package.json文件(若不了解package.json,请自行百度)。
$ npm init
注意:此命令会要求你输入几个参数,例如此应用的名称和版本。 你可以直接按“回车”键接受大部分默认设置即可,下面这个除外:输入 app.js
或者你所希望的名称,这是当前应用的入口文件。如果你希望采用默认的 index.js
文件名,只需按“回车”键即可。
entry point: (index.js)
3.在 express-start 目录下安装 Express 并将其保存到依赖列表中。
npm install express --save
4.项目的跟目录下创建app.js(第二步中注意的地方,入口文件设置的什么名字,这个文件就叫什么名字),下面是app.js文件内容:
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
5.启动项目,然后访问 http://localhost:3000/
node app.js
三、Express 应用程序生成器
通过应用生成器工具 express-generator 可以快速创建一个应用的骨架,express-generator 包含了 express 命令行工具。
1.安装express-generator:
npm install express-generator -g
-h 参数可以列出所有可用的命令行参数:
$ express -h
Usage: express [options] [dir]
Options:
-h, --help 输出使用方法
--version 输出版本号
-e, --ejs 添加对 ejs 模板引擎的支持
--hbs 添加对 handlebars 模板引擎的支持
--pug 添加对 pug 模板引擎的支持
-H, --hogan 添加对 hogan.js 模板引擎的支持
--no-view 创建不带视图引擎的项目
-v, --view <engine> 添加对视图引擎(view) <engine> 的支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默认是 jade 模板引擎)
-c, --css <engine> 添加样式表引擎 <engine> 的支持 (less|stylus|compass|sass) (默认是普通的 css 文件)
--git 添加 .gitignore
-f, --force 强制在非空目录下创建
2.新建一个工程,运行如下命令:
express project-name // 简单的创建工程
express --css=less --view=pug project-name // 带参数创建工程
运行结果如下:
3.根据指示继续操作
cd express-start // 进去到项目路径
npm install // 安装依赖包
npm start //启动项目
访问http://localhost:3000/,将会看到如下界面。
四、工程结构讲解
我们回头看看生成的工程目录里面都有什么,打开我们的express-start 文件夹,里面如图所示
bin:存放可执行文件
node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下。
public:存放 image、css、js 等文件
routes:存放路由文件
views:存放视图文件或者说模版文件
app.js:启动文件,或者说入口文件
package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行npm install ,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块
打开app.js,让我们看看里面究竟有什么:
var createError = require('http-errors');
var express = require('express'); //加载express模块
var path = require('path'); //路径模块
var cookieParser = require('cookie-parser'); //这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
var logger = require('morgan'); //在控制台中,显示req请求的信息
// 路由信息(接口地址),存放在routes的根目录
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
// view engine setup 模板开始
app.set('views', path.join(__dirname, 'views')); //设置视图根目录
app.set('view engine', 'jade'); //设置视图格式
// 载入中间件
app.use(logger('dev')); // 日志中间件
app.use(express.json()); // 解析json的中间件。
app.use(express.urlencoded({ extended: false })); // 解析urlencoded请求体的中间件
app.use(cookieParser()); // 解析cookie的中间件
// 设置public文件夹为存放静态文件的目录
app.use(express.static(path.join(__dirname, 'public')));
//配置路由,('自定义路径',上面设置的接口地址)
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler 错误处理
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
五、Express使用html模板
1.安装ejs
npm install ejs --save
2.引入ejs
var ejs = require('ejs');
3.使用
app.set('views', path.join(__dirname, 'views'));
app.engine('html', ejs.__express);
app.set('view engine', 'html');
替换
app.set('views', path.join(__dirname, 'views')); //设置视图根目录
app.set('view engine', 'jade'); //设置视图格式
4.原.jade文件改为.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Express</title>
<link rel="stylesheet" type="text/css" href="../public/stylesheets/style.css">
</head>
<body>
<h1>Welcome to <%= title%></h1>
</body>
</html>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。