>全局安装方法 `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 内容。

express小记的更多相关文章

  1. NodeJS+Express+MySQL开发小记(2):服务器部署

    http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL开发小记(1)里讲过 ...

  2. Gcd&Exgcd算法学习小记

    Preface 对于许多数论问题,都需要涉及到Gcd,求解Gcd,常常使用欧几里得算法,以前也只是背下来,没有真正了解并证明过. 对于许多求解问题,可以列出贝祖方程:ax+by=Gcd(a,b),用E ...

  3. 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版

    背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...

  4. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  5. 【原】无脑操作:express + MySQL 实现CRUD

    基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...

  6. Express 教程 01 - 入门教程之经典的Hello World

    目录: 前言 一.Express?纳尼?! 二.开始前的准备工作 三.测试安装之经典的Hello World 四.使用express(1)来生成一个应用程序 五.说明 前言: 本篇文章是建立在Node ...

  7. VisualStudio 2015 开启IIS Express可以调试X64项目

    现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中调试.不要总是放在IIS中,在Attach这样好慢.   如果不设置直接调试X64的程序,我们有可能会受到以下类似的错误 ...

  8. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  9. Node.js实现RESTful api,express or koa?

    文章导读: 一.what's RESTful API 二.Express RESTful API 三.KOA RESTful API 四.express还是koa? 五.参考资料 一.what's R ...

随机推荐

  1. Sencha Touch 之 Ext.ComponentManager.get方法使用

    HTML代码: <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  2. windows8设置环境变量

    win8,win8.1如何配置java的环境变量 工具/原料   win8,win8.1 方法/步骤   在你的计算机上右击,选择其中的属性就可以了.如下图所示. 接下来,作出如下图所示的选择. 这个 ...

  3. 限制**类型物料不能输入BOM

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name CUX_BOMFDBOM 表单名 Form Name CUXBOMFD ...

  4. HTML加载顺序总结测试

    首先,页面加载顺序:解析HTML结构.加载外部脚本和样式表文件.解析并执行脚本代码.构造HTML DOM模型.加载图片等外部文件.页面加载完毕. 也就是:html → head → title → # ...

  5. 链表-remove duplicates from sorted list

    struct ListNode* deleteDuplicates(struct ListNode* head) { struct ListNode *p=head; if(!head) return ...

  6. Permutation Recovery(模拟)

    Permutation Recovery Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  7. Boost.Asio c++ 网络编程翻译(14)

    保持活动 假如,你须要做以下的操作: io_service service; ip::tcp::socket sock(service); char buff[512]; ... read(sock, ...

  8. CTabCtrl - 如何使用TabCtrl控件

    CTabCtrl - 如何使用TabCtrl控件 建立一个基于对话框的MFC应用程序TabCtrlTest Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_ ...

  9. BZOJ 2324: [ZJOI2011]营救皮卡丘( floyd + 费用流 )

    昨晚写的题...补发一下题解... 把1~N每个点拆成xi, yi 2个. 预处理i->j经过编号不超过max(i,j)的最短路(floyd) S->0(K, 0), S->xi(1 ...

  10. C#学习日志 day 4 ------ 类相关---this指针以及相关关键字

    c#中的类和java中的类没什么太大区别.但是c#有些特有的关键字以及属性使得c#具有一些特性. 首先就是this关键字,this在c++和java中都有,可以表示当前对象,以及变量所属对象等.例如 ...