Express学习

  • API分析
  1. Set、Get

app.set('title', 'My Site');

app.get('title'); // "My Site"

app.get(“string”)和app.get(path, [callback...], callback)要区别开,前面一个函数是获取string的value,而后一个是路由函数。

下面的内建的可以改变Express行为的设置

  • env 运行时环境,默认为 process.env.NODE_ENV 或者 "development"
  • trust proxy 激活反向代理,默认未激活状态
  • jsonp callback name 修改默认?callback=的jsonp回调的名字
  • json replacer JSON replacer 替换时的回调, 默认为null
  • json spaces JSON 响应的空格数量,开发环境下是2 , 生产环境是0
  • case sensitive routing 路由的大小写敏感, 默认是关闭状态, "/Foo" 和"/foo" 是一样的
  • strict routing 路由的严格格式, 默认情况下 "/foo" 和 "/foo/" 是被同样对待的
  • view cache 模板缓存,在生产环境中是默认开启的
  • view engine 模板引擎
  • views 模板的目录, 默认是"process.cwd() + ./views"

常用的set设置:

app.set('port', process.env.PORT || 3000);  //设置端口

app.set('views', __dirname + '/views');

app.set('view engine', 'html');// app.set('view engine', 'ejs');

  1. app.engine(ext, callback)

注册模板引擎的 callback 用来处理ext扩展名的文件 默认情况下, 根据文件扩展名require() 对应的模板引擎。

app.engine('.html', ejs.__express);

app.engine('.ejs', ejs.__express);

app.engine('.jade', jade.__express);

  1. app.use([path], function)

使用中间件 function,可选参数path默认为"/"。这个中间件是nodejs最重要的功能,express也继承了中间件的功能。当path为\或者无时,也就意味着每一个页面每一个请求都会执行。根据这个功能可以使用中间件做路由。

app.use(function(req, res, next){

res.locals.user = req.session.user;

var err = req.session.error;

delete req.session.error;

res.locals.message = '';

if (err) res.locals.message = '<div class="alert alert-error">' + err + '</div>';

next();

});

这个函数会在每一个页面请求时都被调用。

app.use(express.static(path.join(__dirname, 'public')));,express.static( )是处理静态请求的,设置了public文件,public下所有文件都会以静态资料文件形式返回(如样式、脚本、图片素材等文件)

l   路由

app.use('/', routes);

app.use('/reg', reg);

app.use('/login', login);

app.use('/logout', logout);

l   供应器

它会针对请求进行回应,你可以根据你的需求使用多个中间件,Http请求将会通过每一个中间件直到其中一个中间件对请求进行回应。

app.use(express.favicon());

app.use(express.logger('dev'));

app.use(express.bodyParser());

app.use(express.methodOverride());

app.use(express.cookieParser());

app.use(express.cookieSession({secret : 'blog.fens.me'}));

app.use(express.session({

secret : 'blog.fens.me',

store: store,

cookie: { maxAge: 900000 } // expire session in 15 min or 900 seconds

}));

  1. app.VERB(path, [callback...], callback)

app.VERB() 方法为Express提供路由方法, VERB 是指某一个HTTP 动作, 比如 app.post()。 可以提供多个callbacks,这多个callbacks都将会被平等对待 ,它们的行为跟中间件一样,也有一个例外的情况,如果某一个callback执行了next('route'),它后面的callback就被忽略。这种情形会应用在当满足一个路由前缀,但是不需要处理这个路由,于是把它向后传递。

app.get('/', routes.index);

app.all('/login', notAuthentication);

app.get('/login', routes.login);

app.post('/login', routes.doLogin);

app.get('/logout', authentication);

app.get('/logout', routes.logout);

app.get('/home', authentication);

app.get('/home', routes.home);

//mongo

app.get('/movie/add',movie.movieAdd);

app.post('/movie/add',movie.doMovieAdd);

app.get('/movie/:name',movie.movieAdd);

app.get('/movie/json/:name',movie.movieJSON);

app.get('/users', user.list);

这个是一个路由函数,作用跟app.use('/', routes)一样。

  1. Request

l   req.params

// GET /file/javascripts/jquery.js

req.params[0]

// => "javascripts/jquery.js"

// GET /user/tj

req.params.name

// => "tj"

附录:

nodeJs免安装环境下装express:

npm config set prefix " N:\nodejs"      //设置npm install -g module时路径

npm config set cache "N:\ nodejs\node_cache"

“path”,输入"N:\nodejs"                              //设置node环境变量

“NODE_PATH”,输入“N:\nodejs\node_modules”   //设置插件环境变量

npm install -g express@3.16.0

4.0时需要先安装npm install -g express-generator然后安装npm install -g express

npm uninstall moudleName:         //卸载node模块

转载于:https://www.cnblogs.com/allenxi/p/4442387.html

NodeJS学习笔记之express相关推荐

  1. NodeJS学习笔记: RESTful —— 为本系列做个小结

    前言 本人不是技术专家,该笔记只是从使用语言进行开发的层面上记录一些体会,不包含也不想尝试从源码或者更深的层次去讨论语言本身的优劣.文章内容是笔者的个人感悟,既不保证正确性,也不保证别人能看懂. 这是 ...

  2. Nodejs学习笔记(七)——接口API

    [目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...

  3. Nodejs学习笔记(六)——Mysql模块

    [目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...

  4. Nodejs学习笔记(四)——http协议与服务器

    [目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(五)--expr ...

  5. Nodejs学习笔记(二)——模块

    [目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http协议与服务器 Nodejs学习笔记( ...

  6. Nodejs学习笔记(一)——基础之全局对象、包和npm

    [目录] Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http协议与服务器 Nodejs学习笔记(五)--express ...

  7. nodejs学习笔记(上)

    nodejs学习笔记 (上) 通过学习需要做到的是 了解 前后端是如何进行交互的 nodejs也是使用javaScript进行编写的 javaScript在不同的运行环境中有不同的作用 在浏览器内核中 ...

  8. 好程序员web前端分享Nodejs学习笔记之Stream模块

    好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...

  9. NodeJS学习笔记

    今天开始学习NodeJS,在这里做个笔记,记录一下我的学习历程,也方便以后参考. 1.什么是NodeJS Node.js® is a JavaScript runtime built on Chrom ...

最新文章

  1. pjsip学习笔记二
  2. ubuntu 修改ip
  3. 八十三、经典排序算法之堆排序
  4. Oracle 监听配置详解(转载)
  5. 深度学习笔记(9) 优化算法(一)
  6. Codeforces Round #186 (Div. 2) Problem D 动态规划
  7. Linux C基础笔记(2)
  8. IDEA更改编码颜色/主题
  9. 15个国外便宜主机介绍
  10. 跨境电商国外消费者线上购物心理分析
  11. gb 28181的20位编码简介
  12. php00截断原理,burpsuite上传截断及截断原理介绍
  13. 流体机械原理及设计08
  14. lumia 830 android,微软Lumia 830成功刷入Android 5.0系统
  15. 传统电话网传真和网络传真的比较
  16. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第11波-快速批量插入图片...
  17. C语言课程设计服装店,《C语言程序设计》课程设计实验报告-服装网店信息管理系统.doc...
  18. 用python抓取淘宝相关产品的价格及销量数据
  19. Project Euler 86:Cuboid route 长方体路径
  20. python多线程抢红包代码_Python有哪些神一般的骚操作? 远远不止抢车票、抢红包《附代码》...

热门文章

  1. Django新手需要注意的10个要点
  2. read实现交互输入自动化(笔记)
  3. Ubuntu12.04和12.10下H3C iNode客户端安装时出现找不到库的解决办法
  4. Oracle virtual box 安装系统黑屏问题
  5. Linux删除带空格的文件 删除最后一个后缀名
  6. c语言条件语序心得,C语言之精华总结.doc
  7. 一个具有20位地址和32位字长的存储器_详解西门子间接寻址之存储器间接寻址...
  8. 修改linux最大文件句柄数
  9. Java中的深拷贝(深复制)和浅拷贝(浅复制)
  10. APM应用性能管理的过去二十年