Vậy "yêu cầu" này là gì?
require()
không phải là một phần của API JavaScript tiêu chuẩn. Nhưng trong Node.js, đó là một chức năng tích hợp với mục đích đặc biệt:tải các mô-đun.
Mô-đun là một cách để chia ứng dụng thành các tệp riêng biệt thay vì có tất cả ứng dụng của bạn trong một tệp. Khái niệm này cũng xuất hiện trong các ngôn ngữ khác với sự khác biệt nhỏ về cú pháp và hành vi, như include
của C , import
của Python , và như vậy.
Một điểm khác biệt lớn giữa các mô-đun Node.js và JavaScript của trình duyệt là cách mã của một tập lệnh được truy cập từ mã của tập lệnh khác.
-
Trong JavaScript của trình duyệt, các tập lệnh được thêm qua
<script>
thành phần. Khi chúng thực thi, tất cả chúng đều có quyền truy cập trực tiếp vào phạm vi toàn cầu, một "không gian được chia sẻ" giữa tất cả các tập lệnh. Bất kỳ tập lệnh nào cũng có thể tự do xác định / sửa đổi / xóa / gọi bất kỳ thứ gì trên phạm vi toàn cầu. -
Trong Node.js, mỗi mô-đun có phạm vi riêng. Một mô-đun không thể truy cập trực tiếp vào những thứ được xác định trong một mô-đun khác trừ khi nó chọn để lộ chúng. Để hiển thị mọi thứ từ một mô-đun, chúng phải được gán cho
exports
hoặcmodule.exports
. Để một mô-đun có thể truy cập vàoexports
của mô-đun khác hoặcmodule.exports
, nó phải sử dụngrequire()
.
Trong mã của bạn, var pg = require('pg');
tải pg
mô-đun, một ứng dụng khách PostgreSQL cho Node.js. Điều này cho phép mã của bạn truy cập chức năng của các API của ứng dụng khách PostgreSQL thông qua pg
biến.
Tại sao nó hoạt động trong nút nhưng không hoạt động trong một trang web?
require()
, module.exports
và exports
là các API của hệ thống mô-đun dành riêng cho Node.js. Các trình duyệt không triển khai hệ thống mô-đun này.
Ngoài ra, trước khi bắt đầu hoạt động trong nút, tôi phải thực hiện
npm install pg
. Đó là về cái gì?
NPM là một dịch vụ lưu trữ gói lưu trữ các mô-đun JavaScript đã xuất bản. npm install
là lệnh cho phép bạn tải xuống các gói từ kho lưu trữ của chúng.
Nó đã đặt nó ở đâu và làm cách nào để tìm thấy nó?
Cli npm đặt tất cả các mô-đun đã tải xuống trong một node_modules
thư mục mà bạn đã chạy npm install
. Node.js có tài liệu rất chi tiết về cách các mô-đun tìm các mô-đun khác, bao gồm cả việc tìm kiếm một node_modules
thư mục.