Maison > Article > interface Web > Une introduction détaillée aux objets globaux dans Node.js
Cet article vous apporte une introduction détaillée aux objets globaux dans Node.js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1 : Chemin de l'objet global du nœud
1. Chemin
_filename ---Chemin du fichier actuel
_dirname ----Le répertoire où se trouve le fichier actuel
Exemple :
console.log(__filename); console.log(__dirname); 输出结果: /Users/macshiguang/node/npm2/index.js /Users/macshiguang/node/npm2
2 : Console d'objet globale du nœud
2.console (console)
(1) Espace réservé
%s ----String
console.log("hello %s world","world"); //Sortie : hello world world
%d ---Nombre (nombre entier ou à virgule flottante)
console.log("Prix : %d","88"); //Sortie : Prix : 88
%i ----Entier, entier
console.log("%i",300.8 // Sortie 300
%f ----Valeur à virgule flottante, type à virgule flottante
console.log("%f",200.3); 200.3%j ----JSON, si le paramètre contient une référence circulaire, remplacez console.log('json:%j',{name:'zhang'}); //json:{"name":"zhang"}
console.log({name:'zhang' } ); //Objet de sortie : { nom : 'zhang' }
(2) attribut d'objet de console
log() -- - Journal
count() ---count
console.count(); console.count('tag'); // default: 1 tag: 1 console.count(); console.count('tag'); // default: 2 tag: 2 console.count(); console.count('tag');// default: 3 tag: 3
countReset() ---Réinitialiser le nombreconsole.countReset('tag');
console.count('tag'); Connectez le nombre ci-dessus, tag : 1
dir() ---Attributs et méthodes de sortie// Sortie d'un certain paramètre
console.dir(global);
// Un certain attribut dans le paramètre de sortie
console.log(global,{colors:true})
//Sortie du premier niveau de cet attribut, combien de fois la profondeur doit être récursive lors du formatage de l'objet
console.dir(global,{colors:true,third:1});
time() --- Calculer la durée d'exécution d'un programme
timeEnd() --- Calculer le temps d'exécution d'un programme Le temps d'exécution de
// 时间 console.time(); for (let i = 0;i<1000;i++){ i * 15 +120 /34; } console.timeEnd();//undefined: 0.054ms
group() --- Augmenter l'indentation des lignes suivantes de deux espaces
groupEnd() ---Supprimez deux espaces de l'indentation des lignes suivantes
console.log("团"); console.group(); console.log("一营"); console.group(); console.log("一连"); console.log("二连"); console.groupEnd(); console.log("二营"); console.group(); console.log("一连"); console.log("二连"); console.groupEnd(); console.groupEnd(); console.log("炮兵团"); //输出 团 一营 一连 二连 二营 一连 二连 炮兵团
error() -- -Erreurconsole.error("Erreur");
warn() ---Avertissement console warn("warning");
trace ---Informations de débogageconsole.trace ("trace") ;
(3) Peinture de personnages
package figlet Installation :
npm install figletIntroduction :
figlet("hello world !",function (err,data) { console.log(data); })
3. Nonde minuterie d'objet globale 3、定时器 (1)设置定时 setTimeout(callback , delay[ , args......]) setInterval(callback, delay[ , args......]) setImmediate(callback, [ , args......]) ---异步执行 例子: (2)取消定时 clearTimeout(timeout) clearInterval(timeout) clerImmediate(Immediate) 例子: 四:Node全局对象之Module 4、Module(模块) 属性: exports ---模块中导入的方法,属性,类, module.exports===exports,改变属性值用:module.exports require() ---引入模块module.require() ===require() require.main ---得到直接使用node运行的模块,require.main === module parent ---父模块 children ---子模块 filename ---当前模块的路径,等同于__filename id --- loaded --- paths --- 五. Node全局对象之process 5. Process(进程) (1)对象属性 pid ---进程号 title ---进程名 argv ---命令行选项组成的数组 argv0 ---命令行选项的第一个 env ---环境信息 execPath ---node.exe的路径 arch ---CPU架构 versions ---版本号信息 platform ---平台信息/操作系统信息 cwd() --返回进程工作目录(当前运行文件的目录) memoryUsage() --返回内存使用情况,单位byte exit() ---结束进程 例子:www/test-01.js (2)输入输出流(I/O) process.stdin ---输入 process.stdout ---输出 例子一: 例子二: 输入任意两个数,自动计算其和 (3)Exit Codes 正常情况下,无异步操作正在等待,node.js以状态码0退出 未捕捉异常...... 详情:http://nodejs.cn/api/process.html#process_exit_codes 六. Node全局对象之Buffer 6. Buffer (1) 什么是Buffer 读取或者操作二进制数据流 Buffer类的实例类似整数数组,但Buffer的大小是固定的且在V8堆外分配物理内存。 使用Buffer来存储需要占用大量内存的数据 (2)Buffer的应用 读取文件内容时,返回是buffer 使用net或者http模块来接受网络数据时,data事件的参数也是一个buffer 使用node.js编写一些底层功能时,比如:网络通信模块,某个数据库的客户端模块,或需从文 件中操作大量结构化数据时 (3)类方法 Buffer.alloc() ---分配长度,每个元素自动填充0,每个元素都是一个字节byte(8bit) 通过在http://tool.oschina.net/hexconvert中查看进制转换 例子: Buffer.from() ---快速创建Buffer 例子: Buffer.allocUnSafe() ---创建Buffer 例子: Buffer.allocUnSafeSlow() -- Buffer.byteLength() --- Buffer.compare() --- Buffer.concat() ---拼接buffer 例子:综和上面创建的buffer: isBuffer() --- isEncoding() --- PoolSize属性 ToString() ---buffer输出 例子:综合以上例子 (4) Buffer对象方法 Buf[index] Buf.buffer Buf.compare() Buf.copy()...... 详情见:http://nodejs.cn/api/buffer.html 相关推荐:// 定时器,异步执行(先同步后异步)
let myImmediate = setImmediate(function () {
console.log("setImmediate立即执行");
})
//同步执行
setTimeout(function (name) {
console.log("setTimeout");
})
//输出结果
setTimeout
setImmediate立即执行
let myImmediate = setImmediate(function () {
console.log("setImmediate立即执行");
})
clearImmediate(myImmediate);
console.log(process.pid);//13196
console.log(process.title);//D:\WebStorm\WebStorm 2017.2\bin\runnerw.exe
console.log(process.argv);//[ 'D:\\nodejs\\node.exe', 'D:\\nodejs\\www\\test\\test-01.js' ]
console.log(process.argv0);//D:\nodejs\node.exe
console.log(process.cwd());//D:\nodejs\www\test
//开启异步操作
setTimeout(function () {
},100000);
// 输出流
process.stdout.write("hello");
process.stdout.write(",world");
// 输入流
process.stdin.on('data',function (name) {
console.log('请输入用户名:'+name);
})
//输出:
hello,world
请输入用户名:
zhang
请输入用户名:zhang
let a;
let b;
process.stdout.write("请输入a的值:");
process.stdin.on('data',function (chunk) {
if(!a){
a=Number(chunk);
process.stdout.write("请输入b的值:");
}else {
b=Number(chunk);
process.stdout.write("a+b的和为:"+(a + b));
}
})
// 创建buffer
// 为Buffer对象分配10个长度,每个元素自动填充0
//buffer的每个元素都是一个字节byte(8bit)
const buf = Buffer.alloc(10);
buf[0] =10;
buf[1] =250;//转为10进制为fa
buf[2] =300;//转为10进制为2c
console.log(buf);//<Buffer 0a fa 2c 00 00 00 00 00 00 00>
console.log(buf.length);//10
// 快速创建
// 数组
const buf2 = Buffer.from([1,2,260,4]);
console.log(buf2);//<Buffer 01 02 04 04>
console.log(buf2.length);//4
// 字符串,需utf-8编码
const buf3 =Buffer.from('你好','utf8');
console.log(buf3);//<Buffer e4 bd a0 e5 a5 bd>
console.log(buf3.length);//6
// 直接从内存开辟空间,10个字节,没有初始化
const buf4 = Buffer.allocUnsafe(10);
console.log(buf4);//输出有内容,<Buffer 98 21 49 7e bf 02 00 00 08 22>,
// 直接从内存开辟空间,10个字节,没有初始化(可能回保存好旧的数据)速度比较快
buf4.fill('a');//每一个填充a
console.log(buf4.length);//4
//拼接buffer
const buf5 = Buffer.concat([buf,buf2]);
console.log(buf5);//<Buffer 0a fa 2c 00 00 00 00 00 00 00 01 02 04 04>
console.log(buf5.length);//14
// buffer 输出字符串
console.log(buf.toString('hex'));//
console.log(buf3.toString('utf8'));//你好
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!