前言
经过之前的文章 《浅谈Nodejs应用的主文件index.js的组成部分》 ,终于认识了 Node 妹子的容颜,然后好像上呀<( ̄︶ ̄)>。呦西~这次让本屌在她胴体上游走一番,想想也是不错滴。嗯哼,YY到此为止。
正文
这篇文章主要以组成部分为单位了解一下 index.js 这个主文件...皮肤有多滑( ̄▽ ̄)~
既然之前说过了index.js的组成部分,那么这次就一个组一个组的说。没错!本帅的手,怎么能放过你的每一寸肌肤!
一、引入依赖模块
嗯..就像这样:
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser');
其实啊,依赖模块就是字面的意思。
用前端工程师的话来说,就是$("#id").attr("class","active")这句代码没有Jquery就转不起来。
用动物的话来说,没有食物就活不下去了。
用本屌的话来说,没有妹子也活不下去了。
嗯哼~综上所述,依赖就是 为接下来要做的事做好能完成该事的准备 。所以上面那些“拼音”都是扮演这种角色的..
二、设置相关配置
献上该组相关代码:
// 视图引擎设置 app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade');
额..就两行代码,胸比较小(  ̄﹏ ̄),毕竟萝莉嘛,啊哈哈哈。
上面两行代码就是设置试图目录并设置 jade 为试图引擎。设置的多少取决于你要用哪些模块,有的模块也有默认设置,但为了自己编写方便,肯定会设置成自己喜欢的样子。
三、中间件
//中间件 app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public')));
中间件,严格来说index.js中每一行都是中间件,我估计好多兄弟虽然知道中间件这个词,但还是不了解到底是什么意思,它主要是干嘛的。
所以,本屌亲自着手画了一幅宇宙仅有的一张图:
我相信聪明的人一下就能看懂了,毕竟本屌的画拿出去卖也能值个5毛钱。
正经话:左边大箭头是指代码执行顺序,谁都知道 Js 是从上往下执行的,这里为了好解释中间件,把大箭头看成水流。
而在水流往下流的过程中,有个类似滤网的东西在中间卡了一层,本屌突然想到了处女膜是不是也这样(啊呸,思想又不正了 ̄▽ ̄)。
黑色的滤网,就是上面那段代码,中间件的作用就是在执行主线代码过程前、过程中、过程后的警察、门卫或者引导者。举个栗子,比如使用 bodyParser 中间件,它的作用就是解析 HTTP 请求的 body 数据解析,方便在路由中使用, cookie-parser 也是一样的道理。
在图中两个滤网中间部分,一般为路由,由它来负责返回客户端想要的页面。
这时候,眼尖的就问了,下面那个中间件为什么是红色的?而且为什么要放在路由后面执行?
问的好!我正要说呢。 熟悉Node开发的小伙伴都知道,大部分中间件一般写在路由之前,但是有时候避免不了一些不确定的错误,比如用户访问的页面不存在怎么办?开发版本错误或者正式版本错误了怎么办? 这个时候就轮到“红色”中间件出场了,没错,它主要负责善后的,一般用来处理可能发生的错误。
四、路由
//路由 app.use('/', routes); app.use('/users', users);
路由可是个好人啊,客户端只需发送请求,路由就会根据请求 url 尽力的去帮你解决请求,它可以用不同的方式( get 、 post 、 put 、 del ...)去处理数据或者返回你想要的页面。总之是个有问尽力回的好银~ 其实路由也是中间件,只是它应该作为一个独立的组成部分更好。
五、开启服务
//启动服务 http.createServer(app).listen(app.get('port'), function () { console.log('服务启动成功,端口为:'+app.get('port')); });
啊哈哈哈哈,终于到高潮了,Node妹子快不行了<( ̄︶ ̄)>
额。。。好像也没什么好说的,就是开启服务了。。。。。。好吧,开启服务前,要通过 http.createServer() 创建一个服务,然后调用 listen() 方法即可开启。这样整个应用就开启啦~~~ 本屌那幅神图中的大箭头也可以顺畅的捅进去了。。进去了。。去了。。了。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】