Learn Node.js from scratch

Learn Node.js from scratch

url module

1.parse method

//test02.js
import http from 'http'
import url from 'url'
const parseUrl = url.parse('https://www.baidu.com/news?name=朱葛亮&age=18#helloworld')
console.log(parseUrl)
http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'})
    res.write('Hello, hello world!')
    res.end()
}).listen(3000)
console.log('My server is running at http://localhost:3000')

Parse the URL address and obtain a parsed URL details object, including protocol, domain name, path, port, query parameters, hash and other information.

The second parameter is a boolean value, which defaults to false. If true is passed, the query will be converted to an object.

const parseUrl = url.parse('https://www.baidu.com/news?name=朱葛亮&age=18#helloworld', true)
console.log(parseUrl)

2. format method

Pass in a URL information object (that is, the object returned by the parse method) and return a specific path. This method is the reverse application of the parse method.

const formatUrl = url.format({
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'www.baidu.com',
    port: null,
    hostname: 'www.baidu.com',
    hash: '#helloworld',
    search: '?name=Zhuge Liang&age=18',
    query: 'name=Zhuge Liang&age=18',
    pathname: '/news',
    path: '/news?name=Zhuge Liang&age=18',
    href: 'https://www.baidu.com/news?name=朱葛亮&age=18#helloworld'
})
console.log(formatUrl) // Output https://www.baidu.com/news?name=朱葛亮&age=18#helloworld

3. resolve method

Splicing or replacing secondary paths

const result1 = url.resolve('https://www.baidu.com', 'news')
const result2 = url.resolve('https://www.baidu.com/home', '')
const result3 = url.resolve('https://www.baidu.com/home', 'about')
const result4 = url.resolve('https://www.baidu.com/home/index', 'about')
const result5 = url.resolve('https://www.baidu.com/home/index?name=朱葛亮', 'about/hello')
console.log(result1)
console.log(result2)
console.log(result3)
console.log(result4)
console.log(result5)

Output:

Events module (event-driven)

1. Introduce the event module

2. Create an eventEmitter instance

3. Use the on method and emit method in eventEmitter to implement event-driven, similar to $on and $emit in vue, that is, publish-subscribe mode

Asynchronous requirements can be solved as follows:

import fs from 'fs'
import event from 'events'

const eventEmitter = new event.EventEmitter()

eventEmitter.on('events', data => {
    console.log('Received data', data.toString())
})

fs.readFile('static/index.html', (err, data) => {
    eventEmitter.emit('events', data)
})

The path module

import path from 'path'
// Get the suffix name const extName = path.extname('index.html') // .html

Summarize

This article ends here. I hope it can be helpful to you. I also hope that you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • Learning Node.js from scratch series tutorial: Example of setting HTTP header method
  • Learn Node.js from scratch series of tutorials SQLite3 and MongoDB usage analysis
  • Learning Node.js from scratch series tutorial 6: Example of how EventEmitter sends and receives events
  • Learning Node.js from scratch series 5: Server monitoring method example
  • Learning Node.js from scratch series 4: Client-side and server-side examples of implementing mathematical operations on multiple pages
  • Learning Node.js from scratch series tutorial: Multi-page mathematical operation example based on connect and express framework
  • Learning Node.js from scratch series 4: Mathematical operation examples implemented on multiple pages

<<:  How to install the latest version of docker using deepin apt command

>>:  Implementation process of row_number in MySQL

Recommend

Detailed tutorial on building Gitlab server on CentOS8.1

There is no need to say much about the difference...

Detailed explanation of Docker working mode and principle

As shown in the following figure: When we use vir...

XHTML introductory tutorial: text formatting and special characters

<br />This section introduces how to impleme...

How to implement concurrency control in JavaScript

Table of contents 1. Introduction to Concurrency ...

Windows 10 is too difficult to use. How to customize your Ubuntu?

Author | Editor Awen | Produced by Tu Min | CSDN ...

JavaScript implements the protocol example in which the user must check the box

In js, set the user to read a certain agreement b...

Vue global filter concepts, precautions and basic usage methods

Table of contents 1. The concept of filter 1. Cus...

How to realize vertical arrangement of text using CSS3

In a recent project, I wanted to align text verti...

Simple Implementation of HTML to Create Personal Resume

Resume Code: XML/HTML CodeCopy content to clipboa...

Web Design Help: Web Font Size Data Reference

<br />The content is reproduced from the Int...

How to add a column to a large MySQL table

The question is referenced from: https://www.zhih...

Detailed explanation of various types of image formats such as JPG, GIF and PNG

Everyone knows that images on web pages are genera...

Detailed Introduction to the MySQL Keyword Distinct

Introduction to the usage of MySQL keyword Distin...