NodeJS学习笔记之express
Express学习
- API分析
- 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');
- app.engine(ext, callback)
注册模板引擎的 callback 用来处理ext扩展名的文件 默认情况下, 根据文件扩展名require() 对应的模板引擎。
app.engine('.html', ejs.__express);
app.engine('.ejs', ejs.__express);
app.engine('.jade', jade.__express);
- 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
}));
- 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)一样。
- 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相关推荐
- NodeJS学习笔记: RESTful —— 为本系列做个小结
前言 本人不是技术专家,该笔记只是从使用语言进行开发的层面上记录一些体会,不包含也不想尝试从源码或者更深的层次去讨论语言本身的优劣.文章内容是笔者的个人感悟,既不保证正确性,也不保证别人能看懂. 这是 ...
- Nodejs学习笔记(七)——接口API
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...
- Nodejs学习笔记(六)——Mysql模块
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...
- Nodejs学习笔记(四)——http协议与服务器
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(五)--expr ...
- Nodejs学习笔记(二)——模块
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http协议与服务器 Nodejs学习笔记( ...
- Nodejs学习笔记(一)——基础之全局对象、包和npm
[目录] Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http协议与服务器 Nodejs学习笔记(五)--express ...
- nodejs学习笔记(上)
nodejs学习笔记 (上) 通过学习需要做到的是 了解 前后端是如何进行交互的 nodejs也是使用javaScript进行编写的 javaScript在不同的运行环境中有不同的作用 在浏览器内核中 ...
- 好程序员web前端分享Nodejs学习笔记之Stream模块
好程序员web前端分享Nodejs学习笔记之Stream模块 一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流 ...
- NodeJS学习笔记
今天开始学习NodeJS,在这里做个笔记,记录一下我的学习历程,也方便以后参考. 1.什么是NodeJS Node.js® is a JavaScript runtime built on Chrom ...
最新文章
- pjsip学习笔记二
- ubuntu 修改ip
- 八十三、经典排序算法之堆排序
- Oracle 监听配置详解(转载)
- 深度学习笔记(9) 优化算法(一)
- Codeforces Round #186 (Div. 2) Problem D 动态规划
- Linux C基础笔记(2)
- IDEA更改编码颜色/主题
- 15个国外便宜主机介绍
- 跨境电商国外消费者线上购物心理分析
- gb 28181的20位编码简介
- php00截断原理,burpsuite上传截断及截断原理介绍
- 流体机械原理及设计08
- lumia 830 android,微软Lumia 830成功刷入Android 5.0系统
- 传统电话网传真和网络传真的比较
- 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第11波-快速批量插入图片...
- C语言课程设计服装店,《C语言程序设计》课程设计实验报告-服装网店信息管理系统.doc...
- 用python抓取淘宝相关产品的价格及销量数据
- Project Euler 86:Cuboid route 长方体路径
- python多线程抢红包代码_Python有哪些神一般的骚操作? 远远不止抢车票、抢红包《附代码》...
热门文章
- Django新手需要注意的10个要点
- read实现交互输入自动化(笔记)
- Ubuntu12.04和12.10下H3C iNode客户端安装时出现找不到库的解决办法
- Oracle virtual box 安装系统黑屏问题
- Linux删除带空格的文件 删除最后一个后缀名
- c语言条件语序心得,C语言之精华总结.doc
- 一个具有20位地址和32位字长的存储器_详解西门子间接寻址之存储器间接寻址...
- 修改linux最大文件句柄数
- Java中的深拷贝(深复制)和浅拷贝(浅复制)
- APM应用性能管理的过去二十年