Node.js 学习笔记-常用的模块(二)

一、Node.js中常用的内置模块

  1. fs模块
    该模块提供对文件系统的访问功能,可以读写文件、创建和删除目录等。
    var fs = require("fs");
    
    // 异步读取
    fs.readFile('input.txt', function (err, data) {
       if (err) {
           return console.error(err);
       }
       console.log("异步读取: " + data.toString());
    });
    
    // 同步读取
    var data = fs.readFileSync('input.txt');
    console.log("同步读取: " + data.toString());
    
    console.log("程序执行完毕。");
    

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

    util.callbackify

    util.callbackify(original) 将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数,例如将 (err, value) => ... 回调作为最后一个参数。 在回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。
     

    util.inherits

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

    JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的。
     

    util.isArray(object)

    如果给定的参数 "object" 是一个数组返回 true,否则返回 false。
     

    util.isRegExp(object)

    如果给定的参数 "object" 是一个正则表达式返回true,否则返回false。
     

    util.isDate(object)

    如果给定的参数 "object" 是一个日期返回true,否则返回false。
    更多详情可以访问 http://nodejs.org/api/util.html 了解详细内容。

  3. http模块:该模块提供对HTTP协议的支持,可以创建HTTP服务器和客户端,实现HTTP请求和响应。
    代码如下:
    var http = require('http');
    var fs = require('fs');
    var url = require('url');
     
     
    // 创建服务器
    http.createServer( function (request, response) {  
       // 解析请求,包括文件名
       var pathname = url.parse(request.url).pathname;
       
       // 输出请求的文件名
       console.log("Request for " + pathname + " received.");
       
       // 从文件系统中读取请求的文件内容
       fs.readFile(pathname.substr(1), function (err, data) {
          if (err) {
             console.log(err);
             // HTTP 状态码: 404 : NOT FOUND
             // Content Type: text/html
             response.writeHead(404, {'Content-Type': 'text/html'});
          }else{             
             // HTTP 状态码: 200 : OK
             // Content Type: text/html
             response.writeHead(200, {'Content-Type': 'text/html'});    
             
             // 响应文件内容
             response.write(data.toString());        
          }
          //  发送响应数据
          response.end();
       });   
    }).listen(8080);
     
    // 控制台会输出以下信息
    console.log('Server running at http://127.0.0.1:8080/');

  4. url模块:该模块提供URL解析功能,可以将一个URL字符串解析成各个部分,例如:协议、主机名、路径等。我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。
    var http = require("http");
    var url = require("url");
     
    function start() {
      function onRequest(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log("Request for " + pathname + " received.");
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Hello World");
        response.end();
      }
     
      http.createServer(onRequest).listen(8888);
      console.log("Server has started.");
    }
     
    exports.start = start;

     
  5. path模块:该模块提供操作文件路径的方法,例如获取路径中的文件名、扩展名等等。
     
  6. events模块:events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。
  7. net模块:该模块提供网络通信功能,可以实现Socket编程,例如创建TCP服务器和客户端。
  8. crypto模块:该模块提供加密和解密相关的功能,例如:计算哈希值、生成随机数、加密解密等。
  9. OS 模块:提供基本的系统操作函数。
  10. stream模块
  11. child_process模块
  12. Net 模块:用于底层的网络通信。提供了服务端和客户端的的操作。
  13. DNS 模块:用于解析域名。
  14. Domain 模块
    简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的。

等等,可以根据具体需求进行调用和使用。

二、Node.js常用的第三方模块

1. Express(Web 应用框架)

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

使用 Express 可以快速地搭建一个完整功能的网站。

Express 框架核心特性:

  • 可以设置中间件来响应 HTTP 请求。

  • 定义了路由表用于执行不同的 HTTP 请求动作。

  • 可以通过向模板传递参数来动态渲染 HTML 页面。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, Express!');
});

app.listen(3000, () => {
  console.log('Express app listening on port 3000');
});

2. axios(HTTP 请求)

axios 是一个功能强大的 HTTP 请求库,用于在 Node.js 和浏览器中发送 HTTP 请求。

const axios = require('axios');

axios.get('https://api.example.com/data')
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

3. lodash(实用工具库)

lodash 是一个实用工具库,提供了许多便捷的函数,用于简化 JavaScript 编程。

const _ = require('lodash');

const numbers = [1, 2, 3, 4, 5];
const sum = _.sum(numbers);
console.log(sum); // Output: 15

4. moment(日期时间处理)

moment 是一个用于解析、格式化和操作日期时间的库,让日期时间处理更加简单。

const moment = require('moment');

const now = moment();
console.log(now.format('YYYY-MM-DD')); // Output: "2023-07-26"

 5.Socket.IO (双向通信)

是一个建立在 WebSocket 协议之上的库,可以在客户端和服务器之间实现低延迟、双向和基于事件的通信。

6.MySQL(数据库)

如何使用 Node.js 来连接 MySQL,并对数据库进行操作。 

$ cnpm install mysql

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123456',
  database : 'test'
});
 
connection.connect();
 
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

7.MongoDB(数据库管理系统

如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。

$ cnpm install mongodb

要在 MongoDB 中创建一个数据库,首先我们需要创建一个 MongoClient 对象,然后配置好指定的 URL 和 端口号。

如果数据库不存在,MongoDB 将创建数据库并建立连接。

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/runoob";
 
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("数据库已创建!");
  db.close();
});

等等,目前先介绍到这里,后续会继续补充。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值