浅谈Nodejs应用主文件index.js


Posted in NodeJs onAugust 28, 2016

前言

经过之前的文章 《浅谈Nodejs应用的主文件index.js的组成部分》 ,终于认识了 Node 妹子的容颜,然后好像上呀<( ̄︶ ̄)>。呦西~这次让本?旁谒?靥迳嫌巫咭环??胂胍彩遣淮淼巍`藕撸?Y到此为止。

正文

这篇文章主要以组成部分为单位了解一下 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就转不起来。

用动物的话来说,没有食物就活不下去了。

用本?诺幕袄此担?挥忻米右不畈幌氯チ恕?/p>

嗯哼~综上所述,依赖就是 为接下来要做的事做好能完成该事的准备 。所以上面那些“拼音”都是扮演这种角色的..

二、设置相关配置

献上该组相关代码:

// 视图引擎设置
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中每一行都是中间件,我估计好多兄弟虽然知道中间件这个词,但还是不了解到底是什么意思,它主要是干嘛的。

所以,本?徘鬃宰攀只?艘环?钪娼鲇械囊徽磐迹?/p>

浅谈Nodejs应用主文件index.js

我相信聪明的人一下就能看懂了,毕竟本?诺幕?贸鋈ヂ粢材苤蹈?毛钱。

正经话:左边大箭头是指代码执行顺序,谁都知道 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() 方法即可开启。这样整个应用就开启啦~~~ 本?拍欠?裢贾械拇蠹?芬部梢运吵┑耐苯?チ恕!=?チ恕!Hチ恕!A恕?/p>

NodeJs 相关文章推荐
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 NodeJs
NodeJS远程代码执行
Aug 28 #NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 #NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 #NodeJs
NodeJs的优势和适合开发的程序
Aug 14 #NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 #NodeJs
Nodejs抓取html页面内容(推荐)
Aug 11 #NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 #NodeJs
You might like
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
javascript如何写热点图
2015/12/08 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
js实现弹窗效果
2020/08/09 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
python插入排序算法的实现代码
2013/11/21 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
django修改models重建数据库的操作
2020/03/31 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
六年级数学教学反思
2014/02/03 职场文书
道路建设实施方案
2014/03/18 职场文书
产假请假条
2014/04/10 职场文书
优秀纪检干部材料
2014/08/27 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
会议开幕词
2015/01/28 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
实习生个人总结范文
2015/02/28 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
Python绘画好看的星空图
2022/03/17 Python