本文共 3132 字,大约阅读时间需要 10 分钟。
在Node.js中,全局对象可以通过global表示,所有全局变量都是这个对象的属性。与其他编程语言不同,Node.js的全局对象在客户端环境下是window,而在服务器端则是global。通过this关键字,可以指向当前全局对象。
全局变量则是全局对象的宿主,例如__filename表示当前脚本的文件名,__dirname表示脚本所在的目录。
_filename与 _dirname_filename:表示当前脚本的文件名,执行时会输出文件的绝对路径。如果是模块文件,返回模块的路径。
PS C:\Users\mingm\Desktop\test> node main.jsC:\Users\mingm\Desktop\test\main.js
console.log(__filename); // 输出当前文件的路径
_dirname:表示当前脚本所在的目录。
PS C:\Users\mingm\Desktop\test> node main.jsC:\Users\mingm\Desktop\test
console.log(__dirname); // 输出当前文件夹的路径
setTimeout:用于在指定时间后执行一次函数,返回定时器的句柄。
function printHello() { console.log('hello word');}setTimeout(printHello, 2000); // 2秒后执行printHello函数clearTimeout:用于停止一个定时器。
const timer = setTimeout(() => { console.log('2秒后执行');}, 2000);clearTimeout(timer); // 停止定时器setInterval:用于在指定时间间隔内重复执行函数,返回定时器句柄。
function printHello() { console.log('hello word!');}setInterval(printHello, 2000); // 每2秒执行printHello函数process是Node.js的全局变量,用于描述当前节点进程的状态。可以通过process.on监听事件,如进程退出:
process.on('exit', (code) => { console.log('退出码为', code);});console.log('程序执行结束'); 运行以下命令可以查看退出码:
PS C:\Users\mingm\Desktop\test> node main.js程序执行结束退出码为 0
Node.js提供了与Unix系统类似的文件操作API,主要包括以下方法:
var fs = require('fs');// 异步读取文件内容fs.readFile('input.txt', (err, data) => { if (err) { console.error('读取文件失败:', err); } else { console.log('读取文件内容:', data.toString()); }}); var fs = require('fs');// 同步打开并读取文件fs.open('input.txt', 'r', (err, fd) => { if (err) { console.error('打开文件失败:', err); } else { fs.read(fd, new Buffer.alloc(1024), 0, 1024, 0, (err, bytes) => { if (err) { console.error('读取文件失败:', err); } else { console.log('读取了', bytes, '字节数据:', fd.read().toString()); } }); }}); fs.ftruncate:截取文件长度。
fs.ftruncate(fd, 10, (err) => { if (err) { console.error('截取文件失败:', err); } else { console.log('截取后的文件长度为10字节'); }});fs.unlink:删除文件。
fs.unlink('input.txt', (err) => { if (err) { console.error('删除文件失败:', err); } else { console.log('文件删除成功!'); }});fs.mkdir:创建目录。
fs.mkdir('./tmp/test', (err) => { if (err) { console.error('创建目录失败:', err); } else { console.log('目录创建成功!'); }});fs.readdir:读取目录内容。
fs.readdir('./tmp', (err, files) => { if (err) { console.error('读取目录失败:', err); } else { files.forEach(file => { console.log('目录中的文件:', file); }); }});可以通过process.memoryUsage()获取内存使用情况:
PS C:\Users\mingm\Desktop\test> node main.js{ rss: 18874368, heapTotal: 6066176, heapUsed: 3677376, external: 8272 } Node.js提供了与Unix系统类似的文件操作API,支持诸如读取、写入、截取、删除、创建目录等操作。
以下是一个完整的文件操作示例:
var fs = require('fs');var path = require('path');// 创建或清空文件fs.writeFileSync('input.txt', '文件内容');// 异步读取文件fs.readFile('input.txt', (err, data) => { if (err) { console.error('读取文件失败:', err); } else { console.log('读取文件内容:', data.toString()); }});// 异步写入文件fs.writeFileSync('input.txt', '新的内容'); 通过这些方法,开发者可以轻松地进行文件操作,提升应用程序的功能和性能。
转载地址:http://sajfk.baihongyu.com/