zoukankan      html  css  js  c++  java
  • nodejs核心模块有哪些?

    全局对象

    在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性。

    在nodejs中能够直接访问到的对象通常都是global的属性,如console、 process等

    全局对象与全局变量

    global最根本的作用是作为全局变量的宿主。

    全局变量的条件:

    在最外层定义的变量;全局对象的属性;隐式定义的变量(未定义直接赋值的变量)

    定义一个全局变量,同时也是全局对象的属性。

    永远使用var定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。

    process

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

    process.argv是命令行参数数组,第一个元素是node, 第二个是脚本文件名,从第三个开始每个元素是一个运行参数。

    console.log(process.argv);

    process.stdout是标准输出流。

    process.stdin是标准输入流。

    process.nextTick(callback)的功能是为事件循环设置一项任务,会在下次事件循环调响应时调用callback

    还有process.platform, process.pid, process.execPath, process.memoryUsage()等。posix进程信号响应机制。

    console

    用于提供控制台标准输出。

    • console.log()

    • console.error()

    • console.trace()

    常用工具util

    util是一个Node.js核心模块,提供常用函数的集合,用于弥补核心js的功能过于精简的不足。

    util.inherits实现对象间原型继承的函数。js面向对象特性是基于原型的。

    util.inspect将任意对象转换为字符串的方法。

    util.isArray(), util.isRegExp(), util.isDate(), util.isError(), util.format(), util.debug()等

    事件机制events--Events模块

    events是NodeJs最重要的模块。NodeJs本身架构就是事件式的,而它提供了唯一的接口,所以堪称NodeJs事件编程的基石。

    事件发射器

    events模块只提供一个对象events.EventEmitter.它核心就是事件发射与事件监控器功能的封装。

    EventEmitter常用的API:

    • EventEmitter.on(event, listener)为指定事件注册一个监听器,接受一个字符串event和一个回调函数listener。

    • EventEmitter.emit(event, [arg1], [arg2], [...])发射event事件,传递若干可选参数到事件监听器的参数表。

    • EventEmitter.once(event, listener)为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立刻解除该监听

    • EventEmitter.removeListener(event, listener)移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。

    • EventEmitter.removeAllListeners([event])移除所有事件的所有监听器,如果指定event,则移除指定事件的所有监听器。

    error事件

    遇到异常的时候,通常会发射error事件。

    继承EventEmitter

    不会直接使用EventEmitter, 而是在对象中继承它。包括fs, net, http在内,只要是支持事件响应的核心模块都是EventEmitter的子类。

    文件系统fs--fs模块

    文件操作的封装,提供了文件的读取、写入、更名、删除、遍历目录、链接等posix文件系统操作。有异步和同步两个版本。

    fs.readFile(filename, [encoding], [callback(err, data)])是最简单的读取文件的函数。

    var fs = require("fs");fs.readFile("server.js", "utf-8", function(err, data){
        if (err){
            console.log(err);
        }else{
            console.log(data);
        }})

    fs.readFileSync

    fs.readFileSync(filename, [encoding])是fs.readFile同步的版本。它接受的参数和fs.readFile相同,而读取到的文件内容会以函数返回值的形式返回。如果有错误发生,fs将会抛出异常,你需要使用try和catch捕捉并处理异常。

    fs.open

    fs.read

    一般来说,除非必要,否则不要使用以上两种方式读取文件,因为它要求你手动管理缓冲区和文件指针,尤其是在你不知道文件大小的时候,这将会是一件很麻烦的事情。

    佛山vi设计https://www.houdianzi.com/fsvi/ 豌豆资源搜索大全https://55wd.com

    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
    ');
    });
    server.listen(port, host, () => {
      console.log(`Server running at http://${host}:${port}/`);
    });

    关于 Node 核心模块还有很多,比如 Buffer、crypto加密、stream的使用、net网络、os操作系统等等。

  • 相关阅读:
    How to alter department in PMS system
    Can't create new folder in windows7
    calculate fraction by oracle
    Long Wei information technology development Limited by Share Ltd interview summary.
    ORACLE BACKUP AND RECOVERY
    DESCRIBE:When you mouse click right-side is open an application and click left-side is attribution.
    ORACLE_TO_CHAR Function
    电脑BOIS设置
    JSP点击表头排序
    jsp+js实现可排序表格
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13847476.html
Copyright © 2011-2022 走看看