1

前言

经过之前的文章《浅谈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尽力的去帮你解决请求,它可以用不同的方式(getpostputdel...)去处理数据或者返回你想要的页面。总之是个有问尽力回的好银~ 其实路由也是中间件,只是它应该作为一个独立的组成部分更好。

五、开启服务

//启动服务
http.createServer(app).listen(app.get('port'), function () {
    console.log('服务启动成功,端口为:'+app.get('port'));
});

啊哈哈哈哈,终于到高潮了,Node妹子快不行了<( ̄︶ ̄)> 

额。。。好像也没什么好说的,就是开启服务了。。。。。。好吧,开启服务前,要通过http.createServer()创建一个服务,然后调用listen()方法即可开启。这样整个应用就开启啦~~~ 本屌那幅神图中的大箭头也可以顺畅的捅进去了。。进去了。。去了。。了。


alwaysVe
1.9k 声望162 粉丝

前进