Cách sử dụng PostgreSQL với Node.js trên Ubuntu 20.04

The author selected Society of Women Engineers to receive a donation as part of the Write for DOnations program.

Giới thiệu

Đã hoàn tất, giờ đây bạn đã cập nhật thành công một bản ghi trong cơ sở dữ liệu bằng cách sử dụng Node-Postgres . Node-Postgres , bạn sẽ có thể viết các chương trình Node.js có thể truy cập và lưu trữ dữ liệu trong cơ sở dữ liệu PostgreSQL.

Tạo và mở modifydata.js Tệp: Node-Postgres mô-đun. Sau đó, bạn sẽ sử dụng Node-Postgres Để chèn, truy xuất và sửa đổi dữ liệu trong cơ sở dữ liệu PostgreSQL.

Tạo và mở

Tạo và mở

  • Tài khoản người dùng không root với sudo Đặc quyền và tường lửa được bật trên Ubuntu 20.04. Thực hiện theo các thiết lập máy chủ ban đầu của chúng tôi với Ubuntu 20.04 để thiết lập máy chủ của bạn.

  • Node.js được cài đặt trên Ubuntu. Nếu bạn chưa cài đặt Node.js, hãy làm theo cách cài đặt Node.js trên Ubuntu 20.04.

  • PostgreSQL được cài đặt trên máy chủ của bạn. Thực hiện theo hướng dẫn Cách cài đặt và sử dụng PostgreSQL trên Ubuntu 20.04 để cài đặt PostgreSQL trên Ubuntu.

  • Kiến thức cơ bản về cách viết các truy vấn trong PostgreSQL, hãy xem phần giới thiệu về các truy vấn trong PostgreSQL để biết thêm chi tiết.

  • Khái niệm cơ bản về cách viết chương trình Node.js, xem cách viết và chạy chương trình đầu tiên của bạn trong Node.js.

  • Hiểu biết cơ bản về cách viết các hàm không đồng bộ trong JavaScript. Đọc qua sự hiểu biết của chúng tôi vòng lặp sự kiện, gọi lại, hứa hẹn và async / đang chờ hướng dẫn JavaScript để tìm hiểu những điều cơ bản.

Tạo và mở

Đã hoàn tất, giờ đây bạn đã cập nhật thành công một bản ghi trong cơ sở dữ liệu bằng cách sử dụng Node-Postgres . npm. This directory is where you will work on building your PostgreSQL database and configuration files to interact.

Phần kết luận mkdir Lệnh:

  • Trong hướng dẫn này, bạn đã sử dụng Node-Postgres

Để biết thêm thông tin về Node-Postgres , hãy truy cập tài liệu của họ. Để cải thiện kỹ năng Node.js của bạn, bạn có thể khám phá cách mã trong loạt Node.js.

  • Trong bước này, bạn sẽ tạo thư mục cho ứng dụng nút và cài đặt Node-Postgres Sử dụng NPM . Thư mục này là nơi bạn sẽ làm việc để xây dựng các tệp cấu hình và cơ sở dữ liệu PostgreQuery của mình để tương tác. node_pg_app

Tạo thư mục cho dự án của bạn bằng mkdir Lệnh: npm init command:

  • mkdir Điều hướng vào thư mục mới được tạo bằng Điều hướng vào thư mục mới được tạo bằng

cd node_pg_app flag creates a default package.json file.

Khởi tạo thư mục bằng gói.json Tệp sử dụng npm init < AI = 4> Lệnh: node-postgres module with npm install:

  • npm init -y.

the -y Cờ tạo một gói mặc định gói.json tập tin. Node-Postgres như một sự phụ thuộc. Bây giờ bạn đã sẵn sàng để tạo người dùng và cơ sở dữ liệu trong Postgres.

Tiếp theo, cài đặt Node-Postgres Mô-đun với NPM Cài đặt :

NPM Cài đặt PG.

Khi bạn cài đặt Postgres trên Ubuntu lần đầu tiên, nó sẽ tạo một người dùng Postgres trên hệ thống của bạn, một người dùng cơ sở dữ liệu có tên Postgres và cơ sở dữ liệu Postgres . Người dùng Postgres Cho phép bạn mở phiên PostgreSQL, nơi bạn có thể thực hiện các tác vụ quản trị như tạo người dùng và cơ sở dữ liệu. postgres on your system, a database user named postgres, and a database postgres. The user postgres allows you to open a PostgreSQL session where you can do administrative tasks such as creating users and databases.

PostgreSQL sử dụng Xác thực nhận dạng Lược đồ kết nối cho phép người dùng trên Ubuntu đăng nhập vào trình bao Postgres miễn là tên người dùng tương tự như Người dùng postgres. Vì bạn đã có Postgres Người dùng trên Ubuntu và A Postgres Người dùng trong PostgreSQL được tạo thay mặt bạn, bạn sẽ có thể đăng nhập vào Shell Postgres. ident authentication connection scheme which allows a user on Ubuntu to login to the Postgres shell as long as the username is similar to the Postgres user. Since you already have a postgres user on Ubuntu and a postgres user in PostgreSQL created on your behalf, youll be able to log in to the Postgres shell.

Để đăng nhập, hãy chuyển người dùng Ubuntu thành Postgres Với sudo và đăng nhập vào shell postgres bằng psql Lệnh: postgres with sudo and login into the Postgres shell using the psql command:

  • sudo -u postgres psql

Các đối số của lệnh đại diện:

  • -u : Một lá cờ chuyển người dùng đến người dùng đã cho trên Ubuntu. PASSING postgres user as an argument will switch the user on Ubuntu to postgres.
  • psql : một chương trình thiết bị đầu cuối tương tác Postgres nơi bạn có thể nhập các lệnh SQL để tạo cơ sở dữ liệu, vai trò, bảng và nhiều hơn nữa.

Khi bạn đăng nhập vào Shell Postgres, thiết bị đầu cuối của bạn sẽ trông giống như sau:

postgres là tên của cơ sở dữ liệu bạn sẽ tương tác với và # biểu thị rằng Bạn đang đăng nhập với tư cách là một siêu người dùng. is the name of the database youll be interacting with and the # denotes that youre logged in as a superuser.

Đối với ứng dụng Node, bạn sẽ tạo một người dùng và cơ sở dữ liệu riêng biệt mà ứng dụng sẽ sử dụng để kết nối với Postgres.

Để làm điều đó, hãy tạo một vai trò mới với mật khẩu mạnh:

  • Tạo người dùng fish_user Với mật khẩu 'Mật khẩu' ;

Một vai trò trong Postgres có thể được coi là người dùng hoặc nhóm tùy thuộc vào trường hợp sử dụng của bạn. Trong hướng dẫn này, bạn sẽ sử dụng nó như một người dùng.

Tiếp theo, tạo cơ sở dữ liệu và gán quyền sở hữu cho người dùng bạn đã tạo:

  • Tạo cơ sở dữ liệu Chủ sở hữu fish_user ;

Gán quyền sở hữu cơ sở dữ liệu cho fish_user Gây các đặc quyền vai trò để tạo, thả và chèn dữ liệu vào các bảng trong Cá Cơ sở dữ liệu. fish_user grants the role privileges to create, drop, and insert data into the tables in the fish database.

Với người dùng và cơ sở dữ liệu được tạo, thoát khỏi vỏ tương tác Postgre:

  • \NS

Để đăng nhập vào trình bao postgres dưới dạng fish_user , bạn cần tạo người dùng trên Ubuntu với tên tương tự như người dùng Postgres mà bạn đã tạo . .fish_user, you need to create a user on Ubuntu with a name similar to the Postgres user you created.

Tạo người dùng với adduser Lệnh:

  • sudo adduser fish_user

Bây giờ bạn đã tạo một người dùng trên Ubuntu, người dùng PostgreSQL và cơ sở dữ liệu cho ứng dụng nút của bạn. Tiếp theo, bạn sẽ đăng nhập vào vỏ tương tác PostgreSQL bằng fish_user và tạo bảng.

Bước 3 - Mở một vỏ postgres với vai trò và tạo một bảng

Trong phần này, bạn sẽ mở shell Postgres với người dùng mà bạn đã tạo trong phần trước trên Ubuntu. Khi bạn đăng nhập vào trình bao, bạn sẽ tạo một bảng cho ứng dụng Node.js.

Để mở vỏ là fish_user , hãy nhập lệnh sau:

  • sudo -u fish_user psql -d

sudo -u fish_user Chuyển người dùng Ubuntu của bạn thành fish_user và sau đó chạy PSQL Lệnh là người dùng đó. -d Cờ chỉ định cơ sở dữ liệu bạn muốn kết nối, đó là Cá Trong trường hợp này. Nếu bạn không chỉ định cơ sở dữ liệu, PSQL sẽ cố gắng kết nối với fish_user Cơ sở dữ liệu theo mặc định, nó sẽ không tìm thấy và nó sẽ gặp lỗi. switches your Ubuntu user to fish_user and then runs the psql command as that user. The -d flag specifies the database you want to connect to, which is fish in this case. If you dont specify the database, psql will try to connect to fish_user database by default, which it wont find and it will throw an error.

Khi bạn đã đăng nhập psql shell, dấu nhắc shell của bạn sẽ trông giống như sau:

  • ">.

Fish Biểu thị rằng bây giờ bạn đã kết nối với Fish Cơ sở dữ liệu.

Bạn có thể xác minh kết nối bằng \ Conninfo Lệnh:

  • "> \ Conninfo

Bạn sẽ nhận được đầu ra tương tự như sau:

Đầu ra.
Bạn được kết nối với cơ sở dữ liệu " Cá " Là người dùng " fish_user "thông qua ổ cắm trong" / var / run / postgresql "tại cổng" 5432 ". .fish" as user "fish_user" via socket in "/var/run/postgresql" at port "5432".

Đầu ra xác nhận rằng bạn thực sự đã đăng nhập dưới dạng fish_user và bạn đã kết nối với cá cơ sở dữ liệu. fish_user and youre connected to the fish database.

Tiếp theo, bạn sẽ tạo một bảng sẽ chứa dữ liệu, ứng dụng của bạn sẽ chèn.

Bảng bạn sẽ tạo sẽ theo dõi tên cá mập và màu sắc của chúng. Khi được điền dữ liệu, nó sẽ trông giống như sau:

Tôi Tên màu sắc
1 Sammy. màu xanh dương
2 jose. teal.

Sử dụng SQL Tạo bảng , tạo bảng:

  • "> Tạo bảng Cá mập [
  • "> Khóa chính của ID serial,
  • "> Tên varchar [50] không null,
  • "> Màu varchar [50] không null];
  • ">.

Tạo tên cá mập bảng Lệnh tạo một bảng có 3 cột:

  • id : Trường tự động tăng và khóa chính cho bảng. Mỗi lần bạn chèn một hàng, Postgres sẽ tăng và điền vào id giá trị.

  • Tên và Màu : Các trường có thể lưu trữ 50 ký tự. Không null là một ràng buộc ngăn các trường trống rỗng.

Xác minh xem bảng đã được tạo với chủ sở hữu phải chưa:

  • "> \ dt

\ dt Lệnh danh sách tất cả các bảng trong cơ sở dữ liệu.

Khi bạn chạy lệnh, đầu ra sẽ giống như sau:

Danh sách Quan hệ Schema |. Tên |. Loại | Chủ nhân -------- + ------- + ------- + ----------- Công cộng |. Cá mập | Bảng |. fish_user [1 hàng]

đầu ra xác nhận rằng fish_user sở hữu cá mập bảng. .fish_user owns the shark table.

Bây giờ thoát khỏi Shell Postgres:

  • "> \ q

Nó sẽ đưa bạn trở lại thư mục dự án.

Với bảng được tạo, bạn sẽ sử dụng Node-Postgres mô-đun để kết nối với Postgres.

Bước 4 - Kết nối với cơ sở dữ liệu Postgres

Trong bước này, bạn sẽ sử dụng Node-Postgres Để kết nối ứng dụng Node.js của bạn với cơ sở dữ liệu PostgreSQL. Để làm điều đó, bạn sẽ sử dụng node-postgres to create a connection pool. A connection pool functions as a cache for database connections allowing your app to reuse the connections for all the database requests. This can speed up your application and save your server resources.

Tạo và mở db.js tệp trong trình soạn thảo ưa thích của bạn. Trong hướng dẫn này, bạn sẽ sử dụng nano , một trình soạn thảo văn bản đầu cuối:

  • nano db.js.

Trong db.js , yêu cầu trong Node-Postgres < AI = 4> Mô-đun và sử dụng phân công hủy hủy để trích xuất một lớp Pool Từ Node-Postgres < AI = 8>. db.js file, require in the node-postgres module and use destructuring assignment to extract a class Pool from node-postgres.

node_pg_app/db.js

const {pool} = yêu cầu ['pg']

Tiếp theo, tạo Pool Ví dụ để tạo một nhóm kết nối:

node_pg_app/db.js

const {pool} = yêu cầu ['pg'] Const Pool = Pool mới [{ Người dùng: ' fish_user ', Cơ sở dữ liệu: ' Cá mập | Bảng |. Cá mập | Bảng |. Cá mập | Bảng |. Cá mập | Bảng |. Cá mập | Bảng |. Cá mập | Bảng |. Cá mập | Bảng |. ', Mật khẩu: ' Mật khẩu ', Cổng: 5432, Chủ nhà: 'localhost', }]

Khi bạn tạo Pool , bạn chuyển một đối tượng cấu hình như một đối số. Đối tượng này chứa các chi tiết Node-Postgres sẽ sử dụng để thiết lập kết nối với Postgres.

Đối tượng xác định các thuộc tính sau:

  • Người dùng : Người dùng bạn đã tạo trong Postgres.
  • Cơ sở dữ liệu : Tên của cơ sở dữ liệu bạn đã tạo trong Postgres.
  • Mật khẩu : Mật khẩu cho người dùng fish_user .
  • Cổng : Port Postgres đang nghe. 5432 là cổng mặc định.
  • Host : Máy chủ Postgres bạn muốn Node-Postgres để kết nối với. Chuyển nó localhost will connect the node-postgres to the Postgres server installed on your system. If your Postgres server resided on another droplet, your host would look like this:host: server_ip_address.

LƯU Ý: Trong sản xuất, nên giữ các giá trị cấu hình trong một tệp khác, chẳng hạn như .env < AI = 3> Tệp. Tệp này sau đó được thêm vào .gitignore NẾU sử dụng Git để tránh theo dõi nó với điều khiển phiên bản. Ưu điểm là nó ẩn thông tin nhạy cảm, chẳng hạn như của bạn , Người dùng , và Cơ sở dữ liệu từ kẻ tấn công. . In production, its recommended to keep the configuration values in a different file, such as the .env file. This file is then added to the .gitignore file if using Git to avoid tracking it with version control. The advantage is that it hides sensitive information, such as your password, user, and database from attackers.

Khi bạn tạo phiên bản, kết nối cơ sở dữ liệu được thiết lập và Pool đối tượng được lưu trữ trong Pool Biến. Để sử dụng bất cứ nơi nào trong ứng dụng của bạn, bạn sẽ cần phải xuất nó. Trong tệp db.js yêu cầu, yêu cầu và xác định một thể hiện của Pool đối tượng và đặt thuộc tính và giá trị của nó: Pool object is stored in the pool variable. To use this anywhere in your app, you will need to export it. In your db.js file, require in and define an instance of the Pool object, and set its properties and values:

node_pg_app/db.js

const {pool} = yêu cầu ["pg"]; Const Pool = Pool mới [{ Người dùng: " fish_user ", Cơ sở dữ liệu: " ", Mật khẩu: " Mật khẩu ", Cổng: 5432, Máy chủ: "localhost", }]; mô-đun.exports = {pool};

Lưu tệp và thoát Nano Bằng cách nhấn Ctrl + X . Nhập Y Để lưu các thay đổi và xác nhận tên tệp của bạn bằng cách nhấn Nhập hoặc Trả về Khóa trên Mac. nano by pressing CTRL+X. Enter y to save the changes, and confirm your file name by pressing ENTER or RETURN key on Mac.

Bây giờ bạn đã kết nối ứng dụng của mình để Postgres, bạn sẽ sử dụng kết nối này để chèn dữ liệu trong Postgres.

Bước 5 - Chèn dữ liệu vào cơ sở dữ liệu Postgres

Trong bước này, bạn sẽ tạo một chương trình thêm dữ liệu vào cơ sở dữ liệu PostgreSQL bằng cách sử dụng nhóm kết nối bạn đã tạo trong db.js tập tin. Để đảm bảo rằng chương trình chèn dữ liệu khác nhau mỗi lần chạy, bạn sẽ cung cấp cho nó chức năng để chấp nhận các đối số dòng lệnh. Khi chạy chương trình, bạn sẽ truyền nó tên và màu sắc của cá mập. db.js file. To ensure that the program inserts different data each time it runs, youll give it functionality to accept command-line arguments. When running the program, youll pass it the name and color of the shark.

Tạo và mở insertdata.js Tệp trong trình chỉnh sửa của bạn:

  • nano chèndata.js.

Trong insertdata.js Tệp, thêm mã sau để thực hiện các đối số dòng lệnh Script:

node_pg_app/insertData.js

const {pool} = yêu cầu ["./ db"]; Chèn hàm AsyncData [] { const [tên, màu] = process.argv.slice [2]; Console.log [tên, màu sắc]; Không ChènData [];

Đầu tiên, bạn yêu cầu trong Pool Đối tượng từ db.js < AI = 4> Tệp. Điều này cho phép chương trình của bạn sử dụng kết nối cơ sở dữ liệu để truy vấn cơ sở dữ liệu. pool object from the db.js file. This allows your program to use the database connection to query the database.

Tiếp theo, bạn khai báo ChènData [] Chức năng như một hàm không đồng bộ với Async Từ khóa. Điều này cho phép bạn sử dụng đang chờ Từ khóa để thực hiện các yêu cầu cơ sở dữ liệu không đồng bộ. insertData[] function as an asynchronous function with the async keyword. This lets you use the await keyword to make database requests asynchronous.

Trong ChènData [] , bạn sử dụng Quá trình Mô-đun để truy cập các đối số dòng lệnh. Node.js Process.Argv Phương thức trả về tất cả các đối số trong một mảng bao gồm Node và insertdata.js đối số. insertData[] function, you use the process module to access the command-line arguments. The Node.js process.argv method returns all arguments in an array including the node and insertData.js arguments.

Ví dụ: Khi bạn chạy tập lệnh trên thiết bị đầu cuối bằng nút ChènData.js Sammy Blue , Process.argv Phương thức sẽ trả về một mảng: [Node ',' insertData.js ',' Sammy ',' Blue '] [Mảng đã được chỉnh sửa cho Brevity]. node insertData.js sammy blue, the process.argv method will return an array: ['node', 'insertData.js', 'sammy', 'blue'] [the array has been edited for brevity].

Để bỏ qua hai yếu tố đầu tiên: Node và ChènData.js , bạn chắp thêm JavaScript Slice [] Phương thức Process.Argv Phương pháp. Điều này trả về các yếu tố bắt đầu từ chỉ số 2 trở đi. Những đối số này sau đó bị hủy hoại thành tên và Màu Biến. .node and insertData.js, you append JavaScripts slice[] method to the process.argv method. This returns elements starting from index 2 onwards. These arguments are then destructured into name and color variables.

Lưu tệp và thoát Nano Với Ctrl + X . Chạy tệp bằng Node và truyền nó cho các đối số Sammy và < / a> màu xanh lam : nano with CTRL+X. Run the file using node and pass it the arguments sammy, and blue:

  • nút chèndata.js sammy màu xanh

Sau khi chạy lệnh, bạn sẽ thấy đầu ra sau:

Đầu ra.
sammy blue

Chức năng hiện có thể truy cập tên và Shark Màu từ các đối số dòng lệnh. Tiếp theo, bạn sẽ sửa đổi chènData [] để chèn dữ liệu vào Shark bảng. name and shark color from the command-line arguments. Next, youll modify the insertData[] function to insert data into the shark table.

Mở insertdata.js tệp trong trình soạn thảo văn bản của bạn một lần nữa và thêm mã được tô sáng:

node_pg_app/insertData.js

const {pool} = yêu cầu ["./ db"]; Chèn hàm AsyncData [] { const [tên, màu] = process.argv.slice [2]; const res = await pool.query[ "INSERT INTO shark [name, color] VALUES [$1, $2]", [name, color] ]; console.log[`Added a shark with the name ${name}`]; } insertData[];

Bây giờ, insertData [] Hàm xác định tên và Màu của cá mập. Tiếp theo, nó đang chờ Pool.query Phương thức từ Node-Postgres Điều đó Lấy một câu lệnh SQL Chèn vào cá mập [tên, màu] ... là đối số đầu tiên. Câu lệnh SQL chèn một bản ghi vào Shark Bảng. Nó sử dụng những gì được gọi là truy vấn tham số hóa . $ 1 , và $ 2 Tương ứng với Tên và Màu Các biến trong mảng được cung cấp trong Pool. Truy vấn [] Phương thức như đối số thứ hai: [Tên, màu] . Khi Postgres đang thực thi câu lệnh, các biến được thay thế một cách an toàn bảo vệ ứng dụng của bạn khỏi SQL Injection . Sau khi truy vấn thực thi, chức năng sẽ ghi nhận thông báo thành công bằng cách sử dụng bảng điều khiển .log [] . insertData[] function defines the name and color of the shark. Next, it awaits the pool.query method from node-postgres that takes an SQL statement INSERT INTO shark [name, color] ... as the first argument. The SQL statement inserts a record into the shark table. It uses whats called a parameterized query. $1, and $2 corresponds to the name and color variables in the array provided in the pool.query[] method as a second argument: [name, color]. When Postgres is executing the statement, the variables are substituted safely protecting your application from SQL injection. After the query executes, the function logs a success message using console.log[].

Trước khi bạn chạy tập lệnh, hãy bọc mã bên trong ChènData [] trong Thử. ..catch Khối để xử lý lỗi thời gian chạy: insertData[] function in a try...catch block to handle runtime errors:

node_pg_app/insertData.js

const {pool} = yêu cầu ["./ db"]; Chèn hàm AsyncData [] { const [tên, màu] = process.argv.slice [2]; Hãy thử { const res = await pool.query [ "Chèn vào giá trị Shark [tên, màu] [$ 1, $ 2]", [tên, màu sắc] ]; Console.log [`đã thêm một con cá mập bằng tên $ {name}`]; } Catch [lỗi] { Console.Error [lỗi] } Không ChènData []

Khi hàm chạy, mã bên trong hãy thử Chặn thực thi. Nếu thành công, chức năng sẽ bỏ qua bắt khối và thoát. Tuy nhiên, nếu một lỗi được kích hoạt bên trong try block, the catch block will execute and log the error in the console.

Chương trình của bạn hiện có thể thực hiện các đối số dòng lệnh và sử dụng chúng để chèn một bản ghi vào Shark .

Lưu và thoát khỏi trình soạn thảo văn bản của bạn. Chạy insertData.js file with sammy and blue as command-line arguments:

  • nút chèndata.js sammy màu xanh

Bạn sẽ nhận được đầu ra sau:

Đầu ra.
Added a shark with the name sammy

Chạy lệnh chèn một bản ghi trong bảng cá mập có tên Sammy và màu Màu xanh . sammy and the color blue.

Tiếp theo, thực hiện lại tệp với Jose và Teal Là đối số dòng lệnh: insertdata.js tệp trong trình soạn thảo văn bản của bạn một lần nữa và thêm mã được tô sáng: teal as command-line arguments:

  • nút chèndata.js jose teal

Đầu ra của bạn sẽ trông giống như sau:

Đầu ra.
Added a shark with the name jose

Chạy lệnh chèn một bản ghi trong bảng cá mập có tên Sammy và màu Màu xanh . shark table with the name jose and the color teal.

Tiếp theo, thực hiện lại tệp với Jose và Teal Là đối số dòng lệnh: insertdata.js tệp trong trình soạn thảo văn bản của bạn một lần nữa và thêm mã được tô sáng:

nút chèndata.js jose teal

Trong bước này, bạn sẽ truy xuất tất cả các bản ghi trong Shark bằng cách sử dụng Node-Postgres và đăng nhập chúng vào bảng điều khiển. shark table using node-postgres, and log them into the console.

Đầu ra của bạn sẽ trông giống như sau: truy xuất dữ liệu.js Trong trình chỉnh sửa yêu thích của bạn:

Bước 6 - Lấy dữ liệu từ cơ sở dữ liệu Postgres truy xuất dữ liệu , thêm mã sau để truy xuất dữ liệu từ cơ sở dữ liệu:

node_pg_app/retrieveData.js

Trong bước này, bạn sẽ truy xuất tất cả các bản ghi trong Shark bằng cách sử dụng Node-Postgres và đăng nhập chúng vào bảng điều khiển. Tạo và mở tệp truy xuất dữ liệu.js Trong trình chỉnh sửa yêu thích của bạn: Nano Retrievata.js. Trong truy xuất dữ liệu , thêm mã sau để truy xuất dữ liệu từ cơ sở dữ liệu: const {pool} = yêu cầu ["./ db"]; Hàm async truy xuất [] { cố gắng { const res = await pool.query ["chọn * từ cá mập"]; Console.log [res.rows]; } bắt [lỗi] { Console.Error [lỗi];

KhôngretrieveData[] function reads all rows in the shark table and logs them in the console. Within the function try block, you invoke the pool.query[] method from node-postgres with an SQL statement as an argument. The SQL statement SELECT * FROM shark retrieves all records in the shark table. Once theyre retrieved, the console.log[] statement logs the rows.

Không bắt , và đăng nhập lỗi. Trong dòng cuối cùng, bạn gọi truy xuất [] .

Tiếp theo, lưu và đóng trình chỉnh sửa của bạn. Chạy truy xuất dữ liệu.js Tệp:

  • khôi phục dữ liệu[]

the truy xuất [] Chức năng đọc tất cả các hàng trong Shark Bảng và ghi lại chúng trong bảng điều khiển. Trong hàm thử , bạn gọi Pool.Query [] Phương pháp từ Node-Postgres Với câu lệnh SQL như một đối số. Câu lệnh SQL Chọn * từ Shark Lấy tất cả các bản ghi trong Shark Bảng . Một khi họ đã truy xuất, bảng điều khiển Tuyên bố đăng nhập các hàng.

Đầu ra.
[ { id: 1, name: 'sammy', color: 'blue' }, { id: 2, name: 'jose', color: 'teal' } ]

Chạy lệnh chèn một bản ghi trong bảng cá mập có tên Sammy và màu Màu xanh . Trả về các hàng bảng trong một đối tượng giống JSON. Những đối tượng này được lưu trữ trong một mảng.

Tiếp theo, thực hiện lại tệp với Jose và Teal Là đối số dòng lệnh: Node-Postgres .

nút chèndata.js jose teal

Trong bước này, bạn sẽ sử dụng Node-Postgres để sửa đổi dữ liệu trong cơ sở dữ liệu Postgres. Điều này sẽ cho phép bạn thay đổi dữ liệu trong bất kỳ cá mập hồ sơ bảng.

Đầu ra của bạn sẽ trông giống như sau: truy xuất dữ liệu.js Trong trình chỉnh sửa yêu thích của bạn: name. You will use the id value to select the record you want in the table. The name argument will be the new value for the record whose name you want to change.

Điều này xác nhận bạn đã chèn một bản ghi khác vào Shark với tên Jose và màu Teal . modifydata.js Tệp:

  • Bây giờ bạn đã chèn hai bản ghi trong

Trong bước này, bạn sẽ truy xuất tất cả các bản ghi trong Shark bằng cách sử dụng Node-Postgres và đăng nhập chúng vào bảng điều khiển. modifyData.js file, add the following code to modify a record in the shark table:

node_pg_app/modifyingData.js

Tạo và mở tệp Trong Trong Trong

Đầu tiên, bạn yêu cầu Pool đối tượng từ db.js Tệp trong ModifyData.js Tệp. pool object from the db.js file in your modifyData.js file.

Tiếp theo, bạn xác định một hàm không đồng bộ modifydata [] để sửa đổi một bản ghi trong Postgres. Bên trong chức năng, bạn xác định hai biến truy xuất [] . name from the command-line arguments using the destructuring assignment.

Trong thử , bạn gọi Pool.query Phương thức từ Node-Postgres bằng cách truyền cho nó một câu lệnh SQL là đối số đầu tiên. Trên câu lệnh SQL, trong đó mệnh đề chọn bản ghi khớp khớp với ID Giá trị. Sau khi chọn, Đặt tên = $ 1 Thay đổi giá trị trong trường Tên thành giá trị mới. Node-Postgres . pool.query method from node-postgres by passing it an SQL statement as the first argument. On the UPDATE SQL statement, the WHERE clause selects the record that matches the id value. Once selected, SET name = $1 changes the value in the name field to the new value.

Tiếp theo, Console.log Đăng nhập một thông báo thực thi sau khi tên bản ghi đã được thay đổi. Cuối cùng, bạn gọi ModifyData [] Chức năng trên dòng cuối cùng.

Lưu và thoát khỏi tệp bằng ctrl + x . Chạy cá mập hồ sơ bảng. 2 and san as the arguments:

  • nút modifydata.js 2 san

Bạn sẽ nhận được đầu ra sau:

Đầu ra.
Updated the shark name to san

Để xác nhận rằng tên bản ghi đã được thay đổi từ Jose thành san < AI = 4>, Chạy truy xuất.js Tệp: Trả về các hàng bảng trong một đối tượng giống JSON. Những đối tượng này được lưu trữ trong một mảng. to san, run the retrieveData.js file:

  • node truy xuất dữ liệu.js.

Bạn sẽ nhận được đầu ra tương tự như sau:

Đầu ra.
output [ { id: 1, name: 'sammy', color: 'blue' }, { id: 2, name: 'san', color: 'teal' } ]

Để xác nhận rằng tên bản ghi đã được thay đổi từ Jose thành san < AI = 4>, Chạy truy xuất.js Tệp: Trả về các hàng bảng trong một đối tượng giống JSON. Những đối tượng này được lưu trữ trong một mảng. now has a new name san replacing jose.

node truy xuất dữ liệu.js. Node-Postgres .

Bước 7 - Sửa đổi dữ liệu trong cơ sở dữ liệu Postgres

Bạn sẽ nhận được đầu ra tương tự như sau: Node-Postgres để sửa đổi dữ liệu trong cơ sở dữ liệu Postgres. Điều này sẽ cho phép bạn thay đổi dữ liệu trong bất kỳ cá mập hồ sơ bảng. node-postgres module.

Bây giờ bạn sẽ thấy bản ghi với ID 2 Bây giờ có tên mới SAN < / a> Thay thế Jose . Node-Postgres , hãy truy cập tài liệu của họ. Để cải thiện kỹ năng Node.js của bạn, bạn có thể khám phá cách mã trong loạt Node.js.

Video liên quan

Chủ Đề