express小记
>全局安装方法 `npm install -g express`
>cmd切换到你想要放得目录,`express -t ejs blog` 这样就可以生成一个blog文件夹
>还需要进入blog文件夹 运行`npm install` 会自动查找package.json 安装需要的模块
>默认jade模板,但是难度高,ejs模块比较容易上手
blogs下有几个文件夹:
- routes 路由文件夹 相当于控制器
- views ejs模板文件夹 相当于视图
- public 一些css js前端文件资源
####app.js
**app.set 是 Express 的参数设置工具,接受一个键(key)和一个值(value)**
- view engine:视图模板引擎
- views:视图文件的目录,存放模板文件。
- case sensitive routes:路径区分大小写。
- strict routing:严格路径,启用后不会忽略路径末尾的“ / ”。
- jsonp callback:开启透明的 JSONP 支持。
- basepath:基础地址,通常用于 res.redirect() 跳转。
**Express依赖connect,可以通过app.use启用**
- bodyParser 的功能是解析客户端请求,通常是通过 POST 发送的内容
- methodOverride 用于支持定制的 HTTP 方法
- router 是项目的路由支持。
- static 提供了静态文件支持。
- errorHandler 是错误控制器
app.get('/', routes.index); 是一个路由控制器,用户如果访问“ / ”路径,则由 routes.index 来控制。
####routes/index.js
exports.index = function(req, res){
res.render('index', { title: 'Express' });
};
routes/index.js 是个路由控制器
>app.js 中通过 app.get('/', routes.index); 将“ / ”路径映射到 exports.index 函数下。然后由index.js来依据不同的路径给出响应。
>res.render('index', { title: 'Express' }),功能是调用模板解析引擎,翻译名为 index的模板,并传入一个对象作为参数,这个对象只有一个属性,即 title: 'Express'。
####views/index.ejs
index.ejs 是模板文件,即 routes/index.js 中调用的模板
###REST 风格的路由规则
>我们经常用到的是 GET、POST、PUT 和 DELETE 方法。根据 REST 设计模式,这4种方法通常分别用于实现以下功能。
1. GET:获取
2. POST:新增
3. PUT:更新
4. DELETE:删除
###Express 支持的 HTTP 请求的绑定函数
+ GET app.get(path, callback)
+ POST app.post(path, callback)
+ PUT app.put(path, callback)
+ DELETE app.delete(path, callback)
+ PATCH① app.patch(path, callback)
+ TRACE app.trace(path, callback)
+ CONNECT app.connect(path, callback)
+ OPTIONS app.options(path, callback)
+ 所有方法 app.all(path, callback)
###控制权转移
利用app.all可以讲控制权转移给下个规则
app.all('/user/:username', function(req, res, next) {
console.log('all methods captured');
next();
});
app.get('/user/:username', function(req, res) {
res.send('user: ' + req.params.username);
});
### ejs模板引擎
//设置模板引擎
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
//在 路由中启用模板引擎
res.render('index', { title: 'Express' });
ejs标签比较简单 只有3中格式
- <% code %>:JavaScript 代码。
- <%= code %>:显示替换过 HTML 特殊字符的内容。
- <%- code %>:显示原始 HTML 内容。