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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值