Yêu cầu lớp nodejs

Các mô-đun là một khái niệm quan trọng để hiểu Node. dự án js. Trong bài đăng này, chúng tôi đề cập đến các mô-đun Node.

1
6,
1
7 và, tương lai
npm install express
1

Các mô-đun nút cho phép bạn viết mã có thể tái sử dụng. Bạn có thể lồng chúng vào trong một cái khác. Sử dụng Trình quản lý gói nút (NPM), bạn có thể xuất bản các mô-đun của mình và cung cấp chúng cho cộng đồng. Ngoài ra, NPM cho phép bạn sử dụng lại các mô-đun được tạo bởi các nhà phát triển khác

Chúng tôi đang sử dụng Nút 12. x để biết các ví dụ và cú pháp ES6+. Tuy nhiên, các khái niệm có giá trị cho bất kỳ phiên bản

Trong phần này, chúng ta sẽ đề cập đến cách tạo các mô-đun Node và từng thành phần của nó.

  • Yêu cầu
  • xuất khẩu
  • mô-đun (mô-đun. xuất khẩu so với. xuất khẩu)
  • Nhập khẩu

Yêu cầu

1
6 được sử dụng để tiêu thụ các mô-đun. Nó cho phép bạn bao gồm các mô-đun trong chương trình của mình. Bạn có thể thêm Nút lõi tích hợp. js, mô-đun dựa trên cộng đồng (
npm install express
3) và mô-đun cục bộ

Giả sử chúng ta muốn đọc một tệp từ hệ thống tệp. Nút có một mô-đun lõi gọi là 'fs'

1
2
3
4
5
6
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});

Như bạn có thể thấy, chúng tôi đã nhập mô-đun “fs” vào mã của mình. Nó cho phép chúng tôi sử dụng bất kỳ chức năng nào được đính kèm với nó, chẳng hạn như “readFile” và nhiều chức năng khác

Hàm

1
6 sẽ tìm kiếm các tệp theo thứ tự sau

  1. Nút lõi tích hợp. js (như
    npm install express
    5)
  2. Mô-đun NPM. Nó sẽ tìm trong thư mục
    npm install express
    3
  3. Mô-đun cục bộ. Nếu tên mô-đun có
    npm install express
    7,
    npm install express
    8 hoặc
    npm install express
    9, nó sẽ tìm thư mục/tệp trong đường dẫn đã cho. Nó phù hợp với các phần mở rộng tập tin.
    1
    0,
    1
    1,
    1
    2,
    1
    3,
    1
    4 và
    1
    5

Bây giờ chúng ta hãy giải thích từng chi tiết nhỏ hơn với

Mô-đun tích hợp

Khi bạn cài đặt nút, nó sẽ đi kèm với nhiều mô-đun tích hợp. Nút đi kèm với pin đi kèm;)

Một số mô-đun lõi được sử dụng nhiều nhất là

  • fs. Cho phép bạn thao tác (tạo/đọc/ghi) tệp và thư mục
  • đường dẫn. các tiện ích để làm việc với các tệp và đường dẫn thư mục
  • http. tạo máy chủ HTTP và máy khách để phát triển web
  • url. các tiện ích để phân tích cú pháp URL và trích xuất các phần tử từ nó

Những thứ này bạn không cần phải cài đặt, bạn có thể nhập chúng và sử dụng chúng trong các chương trình của mình

Mô-đun NPM

Mô-đun NPM là mô-đun của bên thứ 3 mà bạn có thể sử dụng sau khi cài đặt chúng. Đến tên một vài

  • lodash. một tập hợp các hàm tiện ích để thao tác với mảng, đối tượng và chuỗi
  • lời yêu cầu. Máy khách HTTP dễ sử dụng hơn mô-đun
    1
    6 tích hợp
  • bày tỏ. Máy chủ HTTP để xây dựng trang web và API. Một lần nữa, sử dụng đơn giản hơn mô-đun
    1
    6 tích hợp

Những thứ này bạn phải cài đặt chúng trước, như thế này

1
npm install express

và sau đó bạn có thể tham khảo chúng giống như các mô-đun tích hợp, nhưng lần này chúng sẽ được cung cấp từ thư mục

npm install express
3 chứa tất cả các thư viện của bên thứ 3

1
npm install express
5

Tạo các mô-đun Nodejs của riêng bạn

Nếu bạn không thể tìm thấy thư viện tích hợp hoặc bên thứ 3 làm những gì bạn muốn, bạn sẽ phải tự phát triển nó. Trong các phần sau, bạn sẽ học cách thực hiện điều đó bằng cách sử dụng

1
7

xuất khẩu

Từ khóa

1
7 cho bạn cơ hội “xuất khẩu” các đối tượng và phương thức của mình. Hãy làm một ví dụ

vòng kết nối. js
npm install express
8
npm install express
9

Trong mã bên dưới, chúng tôi đang xuất các hàm

npm install express
51 và
npm install express
52. Chúng tôi đã xác định hằng số
npm install express
53, nhưng điều này chỉ có thể truy cập được trong mô-đun. Chỉ các phần tử được liên kết với
1
7 có sẵn bên ngoài mô-đun

Vì vậy, chúng ta có thể sử dụng nó bằng cách sử dụng

1
6 trong một tệp khác như sau

chính. js
1
2
3
4
5
6
1
6

Lưu ý rằng lần này chúng tôi đặt tiền tố tên mô-đun bằng

npm install express
7. Điều đó chỉ ra rằng mô-đun là một tệp cục bộ

Trình bao bọc mô-đun

Bạn có thể nghĩ về từng Nút. js dưới dạng một hàm độc lập như sau

Trình bao bọc mô-đun
1
2
3
4
5
6
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
1

Chúng tôi đã đề cập đến

1
7 và
1
6. Lưu ý mối quan hệ giữa
npm install express
59 và
1
7. Họ trỏ đến cùng một tài liệu tham khảo. Tuy nhiên, nếu bạn chỉ định trực tiếp thứ gì đó cho
1
7, bạn sẽ phá vỡ liên kết của nó với
npm install express
59 — thông tin chi tiết về điều đó trong phần tiếp theo

Để thuận tiện cho chúng ta,

npm install express
83 và
npm install express
84 được định nghĩa. Họ cung cấp đường dẫn đầy đủ đến tệp và thư mục hiện tại. Cái sau loại trừ tên tệp và in ra đường dẫn thư mục

Chẳng hạn, đối với mô-đun

npm install express
85 của chúng tôi, nó sẽ giống như thế này

  • npm install express
    83.
    npm install express
    87

  • npm install express
    84.
    npm install express
    89

Ok, chúng tôi đã đề cập đến

1
7,
1
6,
npm install express
83 và
npm install express
84. Điều duy nhất chúng tôi chưa đề cập đến là ________ 294. Chúng ta hãy đi cho nó

mô-đun. xuất khẩu so với. xuất khẩu

npm install express
94 không phải là toàn cầu; . Nó chứa siêu dữ liệu về một mô-đun như id, xuất khẩu, cha mẹ, con cái, v.v.

1
7 là bí danh của
npm install express
59. Do đó, bất cứ điều gì bạn chỉ định cho
1
7 cũng có sẵn trên
npm install express
59. Tuy nhiên, nếu bạn chỉ định trực tiếp thứ gì đó để xuất, thì bạn sẽ mất lối tắt tới
npm install express
59. e. g

con mèo. js
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
2
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
3

Hãy thử trường hợp sau với

1
7 và sau đó với
npm install express
59

chính. js
npm install express
8
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
5

Tóm lại, khi nào nên sử dụng

npm install express
59 so với
1
7

Sử dụng

1
7 để

  • Xuất chức năng được đặt tên. e. g.
    1
    2
    3
    4
    5
    6
    6,
    1
    2
    3
    4
    5
    6
    7

Sử dụng

npm install express
59 để

  1. Nếu bạn muốn xuất một đối tượng, lớp, chức năng ở cấp gốc (e. g.

    1
    2
    3
    4
    5
    6
    9)

  2. Nếu bạn muốn trả lại một đối tượng hiển thị nhiều nhiệm vụ. e. g.

    1
    60

nhập khẩu

Bắt đầu với phiên bản 8. 5. 0+, Nút. js hỗ trợ các mô-đun ES nguyên bản với cờ tính năng và phần mở rộng tệp mới

1
2

Chẳng hạn,

1
62 trước đây của chúng tôi có thể được viết lại thành
1
63 như sau

vòng kết nối. mjs
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
2
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
7

Sau đó, chúng ta có thể sử dụng nhập khẩu

chính. mjs
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
8
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
9

Và, cuối cùng, bạn có thể chạy nó bằng cờ tính năng mô-đun thử nghiệm

1
1
1

Nếu bạn không thích các mô-đun thử nghiệm, một giải pháp thay thế khác là sử dụng bộ chuyển mã. Điều đó chuyển đổi JavaScript hiện đại sang các phiên bản cũ hơn cho bạn. Các tùy chọn tốt là TypeScript, Babel và Rollup

Khắc phục sự cố npm install express1 và 16

Cờ thử nghiệm

Nếu bạn không sử dụng cờ thử nghiệm

1
66 và cố gắng sử dụng
npm install express
1, bạn sẽ gặp lỗi như thế này

1
2____03

Phần mở rộng tệp. mjs so với. js (hoặc. cjs)

Nếu bạn có tệp

1
2, bạn không thể sử dụng tệp
1
6 nếu không nó sẽ báo lỗi (
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
00).
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
01 dành cho Mô-đun
npm install express
1 ECMAScript và
const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
03 dành cho mô-đun
1
6 thông thường

Tuy nhiên, với

1
2, bạn có thể tải cả hai loại mô-đun

1
4
1
5

Lưu ý rằng

const fs = require('fs');

fs.readFile('./file.txt', 'utf-8', (err, data) => {
if(err) { throw err; }
console.log('data: ', data);
});
06 đang sử dụng các mô-đun commonJS

Tóm lược

Chúng tôi đã tìm hiểu về cách tạo Node. js và sử dụng nó trong mã của chúng tôi. Các mô-đun cho phép chúng tôi sử dụng lại mã dễ dàng. Chúng cung cấp chức năng tách biệt với các mô-đun khác. Hàm

1
6 được sử dụng để tải các mô-đun.
1
7 và
npm install express
59 cho phép chúng tôi xác định những phần nào trong mã của chúng tôi mà chúng tôi muốn tiết lộ. Chúng tôi cũng khám phá sự khác biệt giữa
npm install express
59 và
1
7. Cuối cùng, chúng tôi đã chọn nhanh về những gì sắp xảy ra cho các mô-đun bằng cách sử dụng
1
8

Yêu cầu () trong NodeJS là gì?

Nút. js tuân theo hệ thống mô-đun CommonJS và chức năng yêu cầu dựng sẵn là cách dễ nhất để bao gồm các mô-đun tồn tại trong các tệp riêng biệt . Chức năng cơ bản của yêu cầu là nó đọc tệp JavaScript, thực thi tệp và sau đó tiếp tục trả về đối tượng xuất.

Tôi có nên sử dụng yêu cầu hoặc nhập trong NodeJS không?

Nếu ứng dụng của bạn sử dụng __dirname cho đường dẫn tệp tương đối với fs , thì bạn cần sử dụng require() hoặc cấu trúc lại ứng dụng của mình . Nếu bạn dựa vào việc nhập các tệp JSON (cấu hình, dữ liệu gốc, v.v. ), bạn cần sử dụng require() hoặc cấu trúc lại ứng dụng của mình để đọc các tệp JSON thay vì sử dụng fs.

Yêu cầu không được dùng nữa trong NodeJS?

Nó không được dùng nữa .

Làm cách nào để gọi một lớp trong NodeJS?

Phương thức khởi tạo là một phương thức đặc biệt để tạo và khởi tạo một đối tượng được tạo bằng một lớp. Hàm tạo có thể sử dụng từ khóa super để gọi hàm tạo của lớp cha .