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 :十问十答

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