Nodejs中常用的全局成语

全局成员

1、定时器

// 定时函数(1s中执行一次)
// 1、setTimeout函数(定时任务只执行一次)
var timer = setTimeout(function(){
    console.log(123);
},1000);

timer

// 循环中套用定时器
for(var i = 0; i < 10; i++){
    timer  // 只打印一次
    console.log(i);
}
// 清除定时器
clearTimeout(timer)

// 2、setInterval函数(执行多次)
var timer1 = setInterval(function(){
    console.log(666)
},1000)

// 设置定时清空setInterval
timer2 = setInterval(function(){
    console.log(777)
    //clearInterval()里面只能清除一个定时器
    clearInterval(timer1)  // 清除timer1
    clearInterval(timer2)  // 清除timer2
},3000)

计时器setTimeout、和setInterval的区别:

​ 1、setTimeout定时任务只执行一次就终止,而setInterval是执行多次且不会主动终止只有清除定时器 (clearInterval)才会终止

​ 2、clearTimeout()clearInterval()都只能清除单个定时器

2、process相关

// 1、process.argv: argv是一个数组,默认情况下,前面两项数据跟别是:Node.js环境路径;当前执行的js文件全路径
// *可以接收命令行参数(第三个参数以后)
console.log(process.argv)

// 2、process.arch打印当前系统的架构(64位或者32位)
console.log(process.arch)  // 输出结果为x64(64为操作系统)

3、模块化开发

模块化开发

​ 传统非模块化开发有如下的缺点

​ 1、命名冲突

​ 2、文件依赖

​ 前端标准的模块化规范(代码加载需要服务端经过网络传发送到浏览器端 一般都是异步的)

​ 1、AMD - requirejs

​ 2、CMD - seajs

​ 服务器端的模块化规范(服务端代码模块只需磁盘加载到内存 一般都是同步的)

​ 1、CommonJS - Node.js

​ 模块化相关的规则

​ 1、如何定义模块:一个js文件就是一个模块,模块内部的成员都是相互独立的

​ 2、模块成员的导出和引入

模块的导出和引入(推荐使用第一种方法)

​ 1、变量的导出引入方式有两种:

​ 1、exports.要导出的变量名 = 变量名 ag: exports.sum =sum

​ 对应的在其他模块引入变量的方法是:

​ var module = require(’./demo02.js’) 在demo3.js中导入demo02.js这个模块

​ var ret = module.sum(12,13);

​ console.log(ret)

​ 2、module.exports = 要导出的变量名 ag: module.exports = sum

​ 对应的模块引入的方法是:

​ var module = require(’./demo02.js’) 在demo3.js中导入demo02.js这个模块

​ var ret = module(12,13); // module本身就是一种方法

​ console.log(ret)

​ 3、使用global(这种方式很少用)

​ 导出

​ var flag = 123

​ global.flag = flag

​ 导入

​ require(‘demo01.js’);

​ console.log(global.flag)

demo01.js

sum = function(a, b){
    return parseInt(a) + parseInt(b)
}

// 在当前模块中导出这个变量
// 导出方式一
// exports.sum = sum

// 导出方式二
module.exports = sum

demo02.js

/* 
// 方式一引入sum方法(demo01模块中的代码都会被执行)
var module = require("./demo01全局成员")
var res = module.sum(10, 15)
console.log(res)
*/

// 方式二(demo01模块中的代码都会被执行)
var module = require("./demo01全局成员")
res = module(10, 15)
console.log(res)

注意:

1、已被加载的模块会缓存

2、模板文件的后缀3种情况:.js .json .node

3、上述三种模块加载的优先级(不加文件后缀时):.js >. josn > .node

你可能感兴趣的:(nodejs)