express 是基于 node.js 的 web 开发框架。
官方网址:https://www.expressjs.com.cn/
express 脚手架生成
使用 express-generetor 安装。
安装 Express 应用程序生成器:
npm install -g express-generator
使用 express -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 强制在非空目录下创建
生成脚手架:
在当前目录 myapp 下生成脚手架:
express --view=ejs
- 添加的是 ejs 模板引擎。
安装所有依赖包
$ npm install
运行
直接运行 bin 文件夹下的 www 文件就可以了:
node ./bin/www
或者使用如下命令:
npm start
然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了。
通过生成器创建的应用一般都有如下目录结构:
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug
- bin:启动目录,里面包含了一个启动文件 www 默认监听端口是 3000;
- public:存放静态资源;
- routes:路由操作;
- views:存放 ejs 模板引擎;
- app.js:主文件;
- package.json:项目描述文件;
app.js 文件
var createError = require('http-errors'); //http 错误处理
var express = require('express'); // express
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan'); //输出日志
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', 'ejs');
//中间件
app.use(logger('dev')); //开发环境下输出日志
app.use(express.json()); //json 解析
app.use(express.urlencoded({ extended: false })); //解析 body 中数据
app.use(cookieParser()); //cookie 解析
app.use(express.static(path.join(__dirname, 'public'))); //处理静态文件,首先判断请求的路径是否存在于静态文件中,如果存在,则将其取出渲染,否则再继续走下面的路由。
//路由中间件
//请求路径不在静态文件中,进入到这里的路由
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
// 404 中间件
// 如果请求路径在静态页面、路由中都没有找到,则报 404 错误。
app.use(function(req, res, next) {
//也可以在这里自己进行 404 页面渲染
// res.render('404.ejs')
next(createError(404)); //创建 404 报错,来自于 var createError = require('http-errors');
});
// 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;
网友评论