Nodo.js :十问十答

问:什么是Nodo.js?###

答:Node.js 是基于Google V8 引擎的JavaScript 运行环境,使用事件驱动非阻塞式I/O的模型而得以轻量和高效,非常适合在分布式设备上运行数据密集的实时应用。


问:怎么学习Node.js?###

答:

  1. www.nodejs.org 关注Node.js的版本升级,新特性的加入,重要bug 的修复;
  2. www.npmjs.com Node.js模块社区;
  3. www.github.com 开源平台;
  4. www.stackoverflow.com 技术问答社区。

问:Node.js如何选择版本?###

答:Node.js 偶数位为稳定版本,如:-0.6.x、-0.8.x、-0.10.x;奇数位为不稳定版本,如:-0.7.x、-0.9.x、-0.11.x 。


问:Windows如何安装Node.js?###

答:

  1. 下载 Git bash 安装;
  2. 下载 Node.js 安装;
  3. 配置环境变量,例:Win8右键左下角小磁块-系统-高级系统设置-系统变量-Path-编辑,在其后追加Node.js 的安装路径;


    配置环境变量
  4. 测试是否安装成功,打开Git或命令行,输入node -v、npm -v返回版本号即安装成功。


    测试安装是否成功

启动一个Web服务器###

  1. 新建工作目录-新建server.js文件

文件内容
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log('Server running at http://${hostname}:${port}/'); });

  1. 打开命令行,切换到工作目录,输入node server.js,打开浏览器访问http://127.0.0.1:3000/,页面中返回Hello World 。

浏览器执行环境与Node.js执行环境的异同###

相同点:都能执行普通的js代码;
不同点:全局变量不同,例如:window,document等只能在浏览器中取到,而process只能在node中取到,Node.js 本质上是一个js的运行环境,其封装和底层的处理赋予了更强的能力。

Node.js 的模块与Commonjs 的规范###

JS天生缺少命名管理机制,来隔离实现不同功能的js片段,避免相互污染。
为了解决此问题,我们经常采用命名空间,把变量和函数限制在某个特定的作用域内。

不同于jQuery,commonjs是一套规范。包括modules模块、packages包、system系统、binary二进制、console控制、 encodings编码、sokets套接字、unit test单元测试。来约定js应该怎么来组织,应该怎么去编写。

首先是把这些执行不同任务的特定的代码块或文件,看做是一个独立的模块,每个模块可以看做是一个独立的作用域,但不是孤立的,可能存在依赖关系。

对于一个模块可能分成三个关键部分:定义、标识、引用。这种设计规范,不断成长壮大,对很多开源项目有很大影响。

nodejs和Couchdb就是对Commonjs的实现,而且规范和实现互为促进,形成一个良性的循环链。

nodejs借鉴了commonjs的这种模块组织理念,实现了一套模块管理系统。在nodejs里面每个js文件可以看做是一个独立的模块,在它里面不需要有命名空间。不必担心变量、方法的污染、隔离。

同时这些模块(或者说是文件)通过彼此的引入,可以组合起来形成一个更强大的模块(或者是功能包)。

我们安装nodejs时会自动安装npm这个包管理工具。通过npm包管理工具,我们可以往项目里面引入各种形形色色的功能模块。他们或简单或复杂,但每个都是独立的,完整的。


Node.js模块的分类###

  1. 核心模块
  2. 文件模块
  3. 第三方模块

模块的流程###

创建模块-导出模块-加载模块-使用模块

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,448评论 1 37
  • ## 前端开发的工具 ### 编辑器: 1. 轻量级的,依靠插件:sublime;atom(github);vs ...
    浪流儿阅读 3,169评论 0 2
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,062评论 2 58
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,607评论 2 41
  • http://www.jianshu.com/p/01b98f69bd66
    去美国吧哈哈阅读 136评论 0 1