摘要:用本屌的话来说,没有妹子也活不下去了。所以,本屌亲自着手画了一幅宇宙仅有的一张图我相信聪明的人一下就能看懂了,毕竟本屌的画拿出去卖也能值个毛钱。这样整个应用就开启啦本屌那幅神图中的大箭头也可以顺畅的捅进去了。。
前言
经过之前的文章《浅谈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()方法即可开启。这样整个应用就开启啦~~~ 本屌那幅神图中的大箭头也可以顺畅的捅进去了。。进去了。。去了。。了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80109.html
摘要:搭建一个应用,少不了一个主文件,不少人根据各自喜好来定义名字,像。总结一个完整的由个部分组成,大家只要把主文件当成白雪公主,把个组成部分当作七个小矮人就行了,哈哈,这个记法真天才。 前言 Node妹子的问世,着实让我们前端攻城狮兴奋了一把,尤其本屌听说Javascript可以写服务端后,兴奋的像是看到了二次元萝莉的胖子...(●◡●)。呃哼...YY先到这里,原谅本屌是个二次元萝莉控。...
摘要:前后端的界限是按照浏览器和服务器的划分。前后端彼此互不关联。关于作者本文部分图片段落参考文章实践中的前后端分离。淘宝前后端分离实践本文源码详见服务端代码。 一、起源 (故事纯属虚构,如有雷同,纯属巧合)传说在很久很久以前,我们有志之士有了个创业的想法,于是乎开始了自己的创业之梦,但是人手不足啊,于是乎所有角色老子一个人全包了: Roles: PM, DBA, RD, FED, Des...
摘要:前后端的界限是按照浏览器和服务器的划分。前后端彼此互不关联。关于作者本文部分图片段落参考文章实践中的前后端分离。淘宝前后端分离实践本文源码详见服务端代码。 一、起源 (故事纯属虚构,如有雷同,纯属巧合)传说在很久很久以前,我们有志之士有了个创业的想法,于是乎开始了自己的创业之梦,但是人手不足啊,于是乎所有角色老子一个人全包了: Roles: PM, DBA, RD, FED, Des...
阅读 1184·2023-04-25 17:05
阅读 3010·2021-11-19 09:40
阅读 3543·2021-11-18 10:02
阅读 1739·2021-09-23 11:45
阅读 3021·2021-08-20 09:36
阅读 2782·2021-08-13 15:07
阅读 1132·2019-08-30 15:55
阅读 2457·2019-08-30 14:11