一、概述
Express-generator是一个可扩展的应用程序生成器,可以快速创建基于Express Web框架的应用程序骨架。使用Express-generator,可以避免手动创建应用程序骨架所需的重复性工作。这个工具提供了用于生成Express应用程序的标准目录结构、代码文件、模板和配置文件,并且可以根据自己的需要进行定制。
二、安装使用
使用Express-generator前,要先确保在计算机上安装好了Node.js环境。安装完成后,可以在命令行中使用以下命令来安装Express-generator:
npm install -g express-generator
安装完成后,在命令行中执行下面的命令生成一个Express应用程序骨架:
express --view=ejs myapp
在上述命令中,"--view"参数设置视图引擎为ejs,"myapp"是应用程序名称。
三、目录结构
使用Express-generator生成的应用程序骨架自带了标准的目录结构,如下所示:
myapp/
├── bin/
│ └── www
├── public/
│ ├── images/
│ ├── javascripts/
│ └── stylesheets/
│ └── style.css
├── routes/
│ ├── index.js
│ └── users.js
├── views/
│ ├── error.ejs
│ ├── index.ejs
│ └── layout.ejs
├── app.js
├── package.json
└── package-lock.json
其中,bin目录存放了启动脚本;public目录存放了静态文件;routes目录存放了路由文件;views目录存放了模板文件;app.js是应用程序主程序文件。
四、路由
路由用于定义应用程序的请求方式和URL之间的映射关系。在Express中,路由定义通常会被保存在routes目录的模块文件中。
下面是一个基本的路由代码示例:
// routes/index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
在上述代码中,定义了根URL(/)的处理程序,当GET请求根URL时,将返回index模板并传递一个title参数。
五、模板引擎
Express-generator提供了多种模板引擎,如EJS、Jade、Handlebars等。模板引擎负责将数据渲染成HTML页面,并返回给客户端。
下面是一个使用EJS模板引擎的代码示例:
// app.js
var express = require('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());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
module.exports = app;
在上述代码中,使用EJS作为视图引擎,并将应用程序的views目录设置为存放模板文件的目录。在路由代码中,使用res.render()方法将渲染后的模板返回给客户端。模板文件保存在views目录下。
六、静态文件
静态文件是指应用程序中不会因客户端请求而发生变化的文件,通常包括CSS、JavaScript和图像等文件。使用Express-generator生成的应用程序骨架在public目录中包含了一些静态文件的示例文件。
例如,在HTML中引用静态文件:
<link rel="stylesheet" href="/stylesheets/style.css">
在上述代码中,将会引用public目录下的style.css文件。
七、错误处理
在Express中,可以通过定义错误处理中间件来捕捉应用程序在处理请求时抛出的异常。
以下是一个简单的错误处理代码示例:
// 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');
});
在上述代码中,设置了当应用程序在处理请求时抛出异常时的处理函数。可以根据需要将错误信息输出到控制台或返回错误信息页面。
八、总结
使用Express-generator可以快速搭建Web应用程序,并且可以根据需要进行定制。该工具提供了常用的目录结构、代码文件、模板和配置文件,在创建应用程序时可以避免繁琐的手动工作。在应用程序开发过程中,还可以使用Express提供的路由、模板和错误处理等功能来增强应用程序的功能和稳定性。