>全局安装方法 `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. 密码学——网间数据加密传输全流程(SSL加密原理)

    0.导言 昨天写了一篇关于<秘钥与公钥>的文章,写的比较简单好理解,有点儿像过家家,如果详细探究起来会有不少出入,今天就来详细的说明一下数据加密的原理和过程.这个原理就是大名鼎鼎SSL的加 ...

  2. css 清除浮动 兼容IE+, FF

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

  3. EasyUI在MVC4中需要部分刷新页面时load()后页面变形问题!

    最近在使用MVC4与EasUI过程中遇到些容易导致界面变形的问题,纠结了很久,但其实当发现问题在哪里时,倒觉得最终还是自己对MVC4的概念没把握好,OK,show time.  本示例Contact ...

  4. Delphi 函数指针(三大好处:灵活,委托的本质,回调机制),还可把函数指针当参数传入

    首先学习: 指向非对象(一般的)函数/过程的函数指针 Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针.函数指针的声明只需要参数列表:如果是函数,再加个返回值.例如声明 ...

  5. Linux下最快速共享目录的方法

    Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这 ...

  6. rsyslog masg和rawmsg的区别

    msg the MSG part of the message (aka "the message" ;)) message 的MSG 部分 rawmsg the message ...

  7. ajax与算法,sql的group处理

    function correctAction(){ $semester_id = $this->_getParam("semester_id"); $day = $this- ...

  8. 在cmd中输入ls命令出现“ls不是内部或外部命令解决

    今天在学习sass查看目录遇到cmd输入ls提示不是内部命令 解决方法: 新建一个ls.bat文件 内容为: @echo off dir

  9. dataset 用法(1)

    DataSet是表和列结构在内存中的表示方式,DataSet支持多表.表间关系.数据约束等,和关系数据库的模型基本一致.(本质上是微型的数据库.包含一组DataTable对象和DataTable之间的 ...

  10. NSURLConnect 的简单实用(iOS8淘汰)

    Demo_1 NSRULConnection NSRULConnection 苹果公司在ios8已经抛弃了,但是我还是要讲一下,因为这和后面的NSSession有着密切的联系 下面开始使用步骤: 1. ...