>全局安装方法 `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. VI 配置文件(略全)

    配置 ~/.vimrc文件. root则放到/etc/vimrc 具体详见代码 "====================================================== ...

  2. perl 升级到5.20版本

    不建议先rm 先下载tar.gz ...然後手动安装..default 安装到/usr/local/目录下.. 然後修改/usr/bin/perl的symbolic link到/usr/local/b ...

  3. poj2390

    #include <stdio.h> #include <stdlib.h> int main() { int r,m,y,i; scanf("%d %d %d&qu ...

  4. hdu 4598 Difference(奇圈判定+差分约束)

    这是通化邀请赛的题,当时比赛的时候还完全没想法呢,看来这几个月的训练还是有效果的... 题意要求(1) |ai| < T for all i   (2) (vi, vj) in E <=& ...

  5. BeanUtils\DBUtils

    BeanUtil: 需要导入 beanutil包和logging日志包 用于给对象属性赋值. setProperty与copyProperty区别: 这个问题搁置,还不会. 将map数据拷贝到对象中, ...

  6. SDOTOJ2088 refresh的停车场(栈和队列)

     refresh的停车场 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit S ...

  7. hadoop技术基本架构

    一.Hadoop概述 hadoop由两部分组成.各自是分布式文件系统和分布式计算框架MapReduce.当中.分布式文件系统主要用于大规模数据的分布式存储.而MapReduce 则构建在分布式文件系 ...

  8. Codeforces Round #277.5 (Div. 2)-D

    题意:求该死的菱形数目.直接枚举两端的点.平均意义每一个点连接20条边,用邻接表暴力计算中间节点数目,那么中间节点任选两个与两端可组成的菱形数目有r*(r-1)/2. 代码: #include< ...

  9. loading android

    drawal/loading.xml <?xml version="1.0" encoding="utf-8"?><animated-rota ...

  10. 内容高度小于窗口高度时版权div固定在底部

    <!doctype html><html><head><meta charset="utf-8"><title>文档内容 ...