美文网首页
node核心模块

node核心模块

作者: renxiaoyao09 | 来源:发表于2020-03-27 13:49 被阅读0次

    1、全局对象

    JavaScript中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。在浏览器JavaScript中,通常window是全局对象,而NodeJs中的全局对象是global,所有全局变量(除了global本身以外)都是global对象的属性。

    process

    process是一个全局变量,即global对象的属性。它用于描述当前NodeJs进程状态的对象,提供了一个与操作系统的简单接口。

    • process.argv是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。
    • process.stdout是标准输出流,通常我们使用的console.log()向标准输出打印字符,而process.stdout.write()函数提供了更底层的接口。
    • process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。
    • process.nextTick(callback)的功能是为事件循环设置一项任务,NodeJs会在下次事件循环调响应时调用callback。
    // debug.js
    console.log(process.argv);
    process.stdin.resume();
    process.stdin.on("data", function (data) {
        process.stdout.write(data.toString());
    });
    

    __dirname是node.js中的一个全局变量,它指向当前执行脚本所在的目录。

    2、常用工具util

    util是一个Node.js核心模块,提供常用函数的集合。

    util.inherits

    • util.inherits(constructor, superConstructor)是一个实现对象间原型继承的函数。

    util.inspect

    • util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换为字符串的方法,通常用于调试和错误输出。它至少接受一个参数object,即要转换的对象。

    util还提供了util.isArray()、util.isRegExp()、util.isDate()、util.isError()四个类型测试工具,以及util.format()、util.debug()等工具。
    参考:NodeJs核心模块

    3、Events模块

    var EventEmitter = require('events').EventEmitter;     // 引入事件模块
    var event = new EventEmitter();     // 实例化事件模块
    // 注册事件(customer_event)
    event.on('customer_event', function() {
        console.log('customer_event has be occured : ' + new Date());
    });
    event.emit('customer_event');     // 发射(触发)事件
    

    参考:nodejs笔记3(EventEmitter)

    4、fs文件系统模块

    地址:node的fs模块api总结

    5、Http 模块

    http 模块主要用于搭建 http 服务,处理用户请求信息等

    使用 http 请求

    const http = require('http');
    // 使用发送http请求
    const options = {
      protocol: 'http:',
      hostname: 'www.baidu.com',
      port: '80',
      method: 'GET',
      path: '/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg'
    };
    let responseData = '';
    const request = http.request(options, response => {
      console.log(response.statusCode); // 获取链接请求的状态码
      response.setEncoding('utf8');
      response.on('data', chunk => {
        responseData += chunk;
      });
      response.on('end', () => {
        console.log(responseData);
      });
    });
    request.on('error', error => {
      console.log(error);
    });
    request.end();
    

    使用 http 创建服务

    // 使用http创建服务器
    const port = 3000;
    const host = '127.0.0.1';
    const server = http.createServer();
    server.on('request', (request, response) => {
      response.writeHead(200, {
        'Content-Type': 'text/plain'
      });
      response.end('Hello World\n');
    });
    server.listen(port, host, () => {
      console.log(`Server running at http://${host}:${port}/`);
    });
    

    5、child_process模块

    相关文章

      网友评论

          本文标题:node核心模块

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