Nodejs中常用的全局成语

    xiaoxiao2022-07-05  148

    全局成员

    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

    最新回复(0)