ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

初探node.js

2019-06-22 18:43:51  阅读:210  来源: 互联网

标签:node 01 module js testA 模块 初探


一、定义及优势

定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型。

优势:由于Web场景下的大多数任务(静态资源读取、数据库操作、渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率。

使用场景:Web Server、本地代码构建(用于编译构建前端代码)、实用工具开发。

二、成员

  1. CommonJs:模块规范
  2. global:全局对象
  3. process:当前执行的进程

三、CommonJS规则

  • 每个文件是一个模块,有自己的作用域。
  • 在模块内部module变量代表模块本身
  • module.exports属性代表模块对外的接口

实例1:编写2个模块用于实践下上述的三条规则。

新建文件01_testA.js,内容如下:

const testVar = 100;

function test() {
    console.log(testVar);
}

// 将变量暴露给其他模块
module.exports.var = testVar;
module.exports.fn = test;

console.log('testA executed');

再新建一个模块,创建文件01_testB.js:

// 支持js、json、node扩展名,不写依次尝试匹配。
// 若不写路径则认为是build-in模块或者各级node_modules内的第三方模块
// require特性:1、module被加载 的时候执行,加载后缓存 2、一旦出现某个模块被 循环加载,就只输出已经执行的部分,未执行的部分不会输出
const mod = require('./01_testA'); 
console.log(mod.var);
mod.fn();

在命令行运行01_testB.js文件,查看模块之间的调用结果,命令行输入node 01_testB.js,结果如下:

testA executed
100
100

标签:node,01,module,js,testA,模块,初探
来源: https://www.cnblogs.com/yunche/p/11069891.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有