Java教程

Node中的核心模块总结

本文主要是介绍Node中的核心模块总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Node.js的核心模块主要有http、fs、url、querystring模块等。

http模块——创建HTTP服务器、客户端

使用http模块只需在文件中通过require(‘http’)引入即可。该模块本身可以构建服务器,而且性能非常可靠。

1、创建一个简单的Node.js服务器
const http = require('http')
const server = http.createServer(function(req, res) {
  res.writeHead(200, {
    'content-type': 'text/html'
  })
  res.end('Hello, Node.js!')
})
server.listen(3000, function() {
  console.log('启动服务器...');
})

打开浏览器,输入localhost:3000即可看到返回的"Hello, Node.js"文字。
上面代码中,http.createServer()方法返回的是http模块封装的一个基于事件的http服务器。同样http.request()是其封装的一个http客户端,可以用来向http服务器发起请求。
创建服务器可以采用new http.Server()的方式。http.Server的事件主要有:

  • request:最常用的事件,当客户端请求到来时,该事件被触发,提供req和res两个参数,表示请求和响应信息。
  • connection:当TCP连接建立时事件触发
  • close:当服务器关闭时,触发事件
2、创建客户端
const http = require('http')
let reqData = ''
http.request({
  'host': '127.0.0.1',
  'port': '3000',
  'method': 'get'
}, function(res){
  res.on('data', function(chunk) {
    reqData += chunk
  })
  res.on('end', function() {
    console.log(reqData);
  })
}).end()

url模块

使用url模块,只需要通过require(‘url’)引入。url模块是一个分析、解析url的模块,主要提供以下三种方法:

  • url.parse():解析一个url地址,返回一个url对象
  • url.format():接收一个url对象为参数,返回一个完整的url地址
  • url.resolve():接收一个base url对象和一个href url对象,像浏览器那样解析,返回一个完整地址
const url = require('url')
let parseUrl = 'https://www.baidu.com/?name=apple'
let urlObj = url.parse(parseUrl)
console.log(urlObj);
/* 
Url {
  protocol: 'https:',       
  slashes: true,
  auth: null,
  host: 'www.baidu.com',    
  port: null,
  hostname: 'www.baidu.com',
  hash: null,
  search: '?name=apple',    
  query: 'name=apple',      
  pathname: '/',
  path: '/?name=apple',
  href: 'https://www.baidu.com/?name=apple'
}
*/

利用url.format()方法返回上述返回对象的完整地址

let urlObj = {
  protocol: 'https:',       
  slashes: true,
  auth: null,
  host: 'www.baidu.com',    
  port: null,
  hostname: 'www.baidu.com',
  hash: null,
  search: '?name=apple',    
  query: 'name=apple',      
  pathname: '/',
  path: '/?name=apple',
  href: 'https://www.baidu.com/?name=apple'
}
let urlString = url.format(urlObj)
console.log(urlString)
// https://www.baidu.com/?name=apple

url.resolve()的使用:

let urlAdress = url.resolve('https://www.google.com', '/image')
console.log(urlAdress)
// https://www.google.com/image

querystring模块——查询字符串处理

使用querystring模块,只需要在文件中require('querystring')引入即可。该模块的主要方法有

  • querystring.parse():将查询字符串反序列化为一个对象,类似JSON.parse()
  • querystring.stringify():将一个对象序列化为一个字符串,类似JSON.stringify()

path模块——路径处理

path模块提供了一系列处理文件路径的工具,主要方法有:

  • path.join():将所有参数连接起来,返回一个路径
  • path.extname():返回路径参数的拓展名,无拓展名时返回空字符串
  • path.parse():将路径解析为一个路径对象
  • path.format():接收一个路径对象,返回一个完整的路径地址
const path = require('path')
let outputPath = path.join(__dirname, 'node', 'node.txt')
console.log(outputPath)

let ext = path.extname(path.join(__dirname, 'node', 'node.txt'))
console.log(ext)

const pathStr = 'C:/frontend/node/node.txt'
console.log(path.parse(pathStr))

const pathObj = {
  root: 'C:/',
  dir: 'C:/frontend/node',
  base: 'node.txt',
  ext: '.txt',
  name: 'node'
}
console.log(path.format(pathObj))

fs模块——操作文件

使用js模块,同样通过require('fs')引入。常用方法:

  • fs.open():打开一个文件
  • fs.close():关闭一个文件。在实际开发中,如果打开了一个文件,就应该在文件操作完成之后尽快关闭该文件。
  • fs.read():读取文件,可以指定读取文件多少内容
  • fs.readFile():读取文件,只能读取文件的全部内容
  • fs.writeFile():写入文件
// 读文件
fs.readFile("/data/2.txt",function(error,data){
    if(error){
        console.log("读取文件失败!");
    }else{
        console.log(data.toString());
    }
})
// 写文件
fs.writeFile('data/2.txt',"You are so beautiful!",function(error){
    if(error){
        console.log("写文件失败!");
    }else{
        console.log("写文件成功!");
    }
})
这篇关于Node中的核心模块总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!