美文网首页
nodejs基本模块

nodejs基本模块

作者: 宋song一 | 来源:发表于2018-12-14 22:59 被阅读2次

启用strict模式的方法是在JavaScript代码的第一行写上:
'use strict';

  1. 查看全局变量
    node环境下输入global.console(浏览器环境下window.console)

以下变量虽然看起来像全局变量,但实际上不是。 它们的作用域只在模块内

  1. process
    查看当前Node.js进程
    process === global.process;
    process.cwd(); //返回当前工作目录
    要在下一次事件响应中执行代码,可以调用process.nextTick()。传入process.nextTick()的函数不是立刻执行,而是要等到下一次事件循环

  2. 判断JavaScript执行环境
    if (typeof(window) === 'undefined') {
    console.log('node.js');
    } else {
    console.log('browser');
    }

  3. fs文件/文件夹操作
    服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行
    let statSync = fs.statSync('a.txt');
    console.log(statSync)
    console.log(statSync.size)

    删除文件
    fs.unlink('a.txt',err=>{
    if(err) throw err
    })

    删除空文件夹
    fs.rmdir('a',err=>{
    if(err) throw err
    })
    删除非空文件夹,使用第三方库,如fs-extra

fs.watch()fs.watchFile()fs.unwatchFile() 更高效。 建议使用 fs.watch() 而不是 fs.watchFile()fs.unwatchFile()

  1. stream流的读写
let readStream = fs.createReadStream('C:\\ubuntukylin-18.04.1-enhanced-amd64.iso');
let writeStream = fs.createWriteStream('a.iso');
let size=0
readStream.on('data',chunk=>{
    size+=chunk.length
    console.log(`${chunk.length}字节`)
    writeStream.write(chunk)
})
readStream.on('end',()=>{
    console.log('end'+size)
})

写入也可以

var fs = require('fs');

var ws1 = fs.createWriteStream('output1.txt', 'utf-8');
ws1.write('使用Stream写入文本数据...\n');
ws1.write('END.');
ws1.end();

var ws2 = fs.createWriteStream('output2.txt');
ws2.write(new Buffer('使用Stream写入二进制数据...\n', 'utf-8'));
ws2.write(new Buffer('END.', 'utf-8'));
ws2.end();

所有可以读取数据的流都继承自stream.Readable,所有可以写入的流都继承自stream.Writable。

让我们用pipe()把一个文件流和另一个文件流串起来,这样源文件的所有数据就自动写入到目标文件里了,所以,这实际上是一个复制文件的程序:

'use strict';

var fs = require('fs');

var rs = fs.createReadStream('sample.txt');
var ws = fs.createWriteStream('copied.txt');

rs.pipe(ws);

相关文章

网友评论

      本文标题:nodejs基本模块

      本文链接:https://www.haomeiwen.com/subject/zkbnhqtx.html