Nodo.js :十问十答

作者: caoleic | 来源:发表于2016-11-06 10:19 被阅读116次

问:什么是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. 第三方模块

模块的流程###

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

相关文章

  • Nodo.js :十问十答

    问:什么是Nodo.js?### 答:Node.js 是基于Google V8 引擎的JavaScript 运行环...

  • 十问十答

    第一问:微商发展至今,由萌芽期快速过渡到爆发期,然后进入低谷期。国家对微商的政策也在不断的出台完善。你认为,现阶段...

  • 十问十答

    您好您好,我是华南理工大学新传研究生,然后最近在做一个关于得到APP的研究,想访谈一下您,访谈问题共有10个,可能...

  • 十问十答

    其实在决定进入身心灵领域也是思考了一段时间的,每天不断的问自己问题,大概是这些: 01您喜欢冒险吗? 不太喜欢冒险...

  • 十问十答

    十问十答: [疑问]1.家长问:为什么我的孩子总是“破罐破摔”? [玫瑰]答:因为你总把他看成破罐,所以他才...

  • 十问十答

    IP打磨会,我们重新赋予意义,融合了一对一私董会,案例打磨会,个人百问百 答。 其核心宗旨是给被打磨者提供新的启发...

  • Ulord十问十答

    1.Ulord社区的发展模式是什么? Ulord社区将会是一个类似于股份有限公司的组织,公司股东来自于团体、社区成...

  • 燕窝十问十答

    大家好我是燕窝演仔专注燕窝领域研究,常年往返印尼。辨别燕窝真假,品质鉴定,孕期滋补。更多知识,尽在小编 56977...

  • 风水十问十答

    风水算得上是一项中国国粹,从历代帝王、达官显贵那里我们就不难发现这门学问在当时的重要性,不管是皇帝出行、祭祀祖先还...

  • 美东作文十问十答

    1.孩子什么时候开始学写作最合适? 答:文字只是一种表达的工具,它和说话一样,只要会说话,就应该会写作。 经常会有...

网友评论

    本文标题:Nodo.js :十问十答

    本文链接:https://www.haomeiwen.com/subject/tknguttx.html