Thời gian đọc: 4 phút
Query Parameters là các thông số (parameters) được truyền vào URL sau dấu ?
để gửi dữ liệu từ client đến server trong các ứng dụng web. Trong Node.js, chúng được sử dụng để truyền dữ liệu động tới server thông qua các yêu cầu HTTP, đặc biệt là GET requests.
Query Parameters xuất hiện trong URL với cú pháp như sau:
http://example.com/page?key1=value1&key2=value2
Trong đó:
?
: Bắt đầu của query string.key1=value1
: Cặp key-value (tham số và giá trị) đầu tiên.&
: Dùng để phân tách các cặp key-value trong query string.key2=value2
: Cặp key-value tiếp theo.Ví dụ URL:
http://localhost:3000/search?query=javascript&category=books
query=javascript
: Tham số query
có giá trị là javascript
.category=books
: Tham số category
có giá trị là books
.Để lấy query parameters trong Node.js, bạn có thể sử dụng hai cách phổ biến dựa trên thư viện hoặc framework bạn đang sử dụng.
Trong Node.js, bạn có thể sử dụng module url
để phân tích cú pháp (parse) URL và lấy query parameters.
const http = require('http');
const url = require('url');
http.createServer((req, res) => {
const queryObject = url.parse(req.url, true).query;
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(`Query Parameters`);
res.write(`Search query: ${queryObject.query}`);
res.write(`Category: ${queryObject.category}`);
res.end();
}).listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
Trong đoạn mã trên:
url.parse(req.url, true).query
: Lấy phần query string từ URL và chuyển thành object.http://localhost:3000/search?query=javascript&category=books
Kết quả sẽ là:
Query Parameters
Search query: javascript
Category: books
Express.js là một framework phổ biến trong Node.js giúp đơn giản hóa việc xử lý yêu cầu HTTP, bao gồm cả việc lấy query parameters.
const express = require('express');
const app = express();
app.get('/search', (req, res) => {
const query = req.query.query;
const category = req.query.category;
res.send(`
Query Parameters
Search query: ${query}
Category: ${category}
`);
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
req.query
: Là một object chứa các cặp key-value của query string. Bạn có thể truy cập các tham số qua req.query.key
.http://localhost:3000/search?query=javascript&category=books
Kết quả sẽ là:
Query Parameters
Search query: javascript
Category: books
Query Parameters là một công cụ hữu ích trong Node.js để truyền dữ liệu từ client đến server thông qua URL. Với Node.js, bạn có thể dễ dàng lấy và xử lý query parameters bằng cách sử dụng module url
hoặc framework như Express.js. Dù tiện lợi, nhưng bạn cũng nên cân nhắc các vấn đề bảo mật và kích thước URL khi sử dụng.