Để truy cập cơ sở dữ liệu MySQL bằng Node. js, bạn cần có trình điều khiển MySQL. Hướng dẫn này sẽ sử dụng mô-đun "mysql", được tải xuống từ NPM
Để tải xuống và cài đặt mô-đun "mysql", hãy mở Command Terminal và thực hiện như sau
C. \Users\Tên của bạn>npm cài đặt mysql
Bây giờ bạn đã tải xuống và cài đặt trình điều khiển cơ sở dữ liệu mysql
Nút. js có thể sử dụng mô-đun này để thao tác với cơ sở dữ liệu MySQL
var mysql = yêu cầu['mysql'];
Tạo kết nối
Bắt đầu bằng cách tạo kết nối đến cơ sở dữ liệu
Sử dụng tên người dùng và mật khẩu từ cơ sở dữ liệu MySQL của bạn
demo_db_connection. js
var mysql = yêu cầu['mysql'];
var con = mysql. createConnection[{
máy chủ. "máy chủ cục bộ",
người dùng. "tên người dùng của bạn",
mật khẩu. "mật khẩu của bạn"
}];
con. connect[function[err] {
if [err] throw err;
bảng điều khiển. log["Đã kết nối. "];
}];
Lưu mã ở trên vào tệp có tên "demo_db_connection. js" và chạy tệp
Chạy "demo_db_connection. js"
C. \Users\Tên của bạn>nút demo_db_connection. js
Cái nào sẽ cho bạn kết quả này
Bây giờ bạn có thể bắt đầu truy vấn cơ sở dữ liệu bằng các câu lệnh SQL
Truy vấn cơ sở dữ liệu
Sử dụng các câu lệnh SQL để đọc từ [hoặc ghi vào] cơ sở dữ liệu MySQL. Điều này còn được gọi là "truy vấn" cơ sở dữ liệu
Nút. js và MySQL kết hợp rất tốt với nhau. Trong nút này. js MySQL, chúng ta sẽ xem xét cách bắt đầu từng bước với cả hai để xây dựng API REST cho báo giá bằng cách sử dụng Express js
Mục lục
Tại sao nút. hướng dẫn js MySQL
Nút. js đã được kết hợp phổ biến với cơ sở dữ liệu NoSQL, đặc biệt là Mongo DB. Nếu bạn di chuyển một codebase cũ hơn sang Node. js, bạn sẽ không có tùy chọn để chọn cơ sở dữ liệu. Hầu hết các hệ thống cũ hơn hoặc thậm chí các hệ thống mới đều sử dụng hệ thống quản lý cơ sở dữ liệu quan hệ như MySQL. Điều này dẫn đến nhu cầu về một Node từng bước. hướng dẫn js MySQL
Nếu bạn đang bắt đầu một dự án mới, đừng mù quáng sử dụng NoSQL như Mongodb. Video vui nhộn nhưng chính xác này từ năm 2010 về MySQL vs Mongo vẫn có ý nghĩa hoàn hảo
Sử dụng cơ sở dữ liệu NoSQL nếu dự án của bạn thực sự cần nó, cơ sở dữ liệu quan hệ sẽ đủ
Điều kiện tiên quyết cho nút. hướng dẫn js MySQL
- Bạn có nút. js được cài đặt trên máy của bạn [hoặc bộ chứa docker có thể chạy Node. js]. Chúng tôi sẽ sử dụng Node. js phiên bản 18 và npm 8. 6
- Bạn đã quen với cách Node. js hoạt động bình thường và cũng biết về Node. khung js. Chúng tôi sẽ sử dụng Express js cho hướng dẫn này
- Một số kiến thức về git sẽ thực sự hữu ích
- Bạn có quyền truy cập vào phiên bản MySQL chạy cục bộ hoặc từ xa. Tôi khuyên bạn nên sử dụng MySQL hoặc PlanetScale từ xa. Bạn nên biết RDBMS hoạt động như thế nào
- Bạn có thể viết mã bằng IDE, tôi sẽ sử dụng mã VS nhưng bạn có thể sử dụng bất kỳ trình chỉnh sửa hoặc IDE nào cho Nút này. hướng dẫn js MySQL
Nút. các bước hướng dẫn js MySQL
Chúng tôi sẽ xây dựng một API REST đơn giản với Express js có thể đưa ra các trích dẫn. Trước khi đi sâu hơn vào các bước, tôi thực sự khuyên bạn nên xem lại REST [Chuyển trạng thái đại diện]. Tốt nhất bạn nên đọc các động từ REST và chạy một số lệnh cURL để POST API
Cho rằng bạn có Nút. js đang chạy [trên máy hoặc với Docker], chúng ta có thể bắt đầu với việc thiết lập Express trước
Thiết lập Express js cho Node. hướng dẫn js MySQL
Để thiết lập express, chúng ta sẽ sử dụng express-generator. Bạn có thể tạo một ứng dụng js nhanh mà không cần bất kỳ công cụ xem nào cho Nút này. js MySQL hướng dẫn với lệnh sau
npx express-generator --no-view --git nodejs-mysql
Để nhanh chóng kiểm tra đầu ra, hãy thực hiện như sau.
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
Bạn sẽ thấy đầu ra bên dưới trên trình duyệt của mình
Có thể thấy ứng dụng express cơ bản đã tạo trong yêu cầu kéo này
Xóa thư mục chung
Vì chúng tôi đang xây dựng API REST để trích dẫn trong Nút này. js với Express chúng ta sẽ xóa thư mục chung. Chúng tôi không cần bất kỳ CSS hoặc js nào cho mục đích của hướng dẫn này vì chúng tôi sẽ xử lý JSON
Để xóa thư mục chung, hãy chạy lệnh sau
rm -rf public
Xóa các tuyến đường hiện có và tạo một tuyến đường mới cho báo giá
Tại thời điểm này, chúng tôi sẽ thực hiện một số thay đổi đối với các tuyến đường. Chúng tôi sẽ xóa tệp
rm -rf public
4 mà chúng tôi không cần nữa. Sau đó, chúng tôi sẽ thêm tệp rm -rf public
5 giống như bên dướiconst express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
Hiện tại,
rm -rf public
6 sẽ cung cấp đầu ra tĩnh chỉ có một trích dẫn như hình trên. Chúng tôi sẽ làm cho nó năng động trong các bước tiếp theoSau đó, chúng tôi sẽ cần liên kết tuyến trích dẫn với tệp
rm -rf public
7. Sau khi liên kết tệp rm -rf public
7 của tôi trông như bên dướiconst express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
Một điều nữa cần làm là thay đổi tệp
rm -rf public
9 để hiển thị đầu ra JSON thay cho hiển thị dạng xem/mẫu HTML. Sau khi thay đổi này, tệp rm -rf public
9 trông như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
2Tôi cũng đã thay đổi tất cả
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
1 thành const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
2 vì nó hợp lý hơn. Nếu bạn muốn xem tất cả các thay đổi trong một lần, nó có sẵn trong yêu cầu kéo nàyBạn có thể xem những thay đổi cuối cùng bằng cách chạy đoạn mã sau trên dòng lệnh của mình
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
5Bạn sẽ thấy bên dưới khi bạn nhấn
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
3 trên trình duyệt của mìnhThiết lập MySQL với bảng báo giá
Tại thời điểm này, đối với Nút này. js MySQL, chúng ta sẽ tạo một Quotes API. Người tiêu dùng cũng có thể lấy báo giá và thêm báo giá mới. Để kích hoạt tính năng này, chúng tôi sẽ sử dụng một bảng duy nhất có tên là
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
4, cấu trúc của nó được đưa ra bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
8Đây là một bảng đơn giản với 5 cột. Cái đầu tiên là
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
5 khóa chính được tăng tự động. Sau đó là const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
4 và const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
7. Cả hai cột này đều là varcharSau đó là
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
8 và const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
9. Cả hai cột ngày đều có giá trị mặc định là const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
0 nên chúng tôi không cần gửi các giá trị này từ mã. Cũng không phải vậy, updated_at sẽ được cập nhật tự động khi hàng được cập nhật vì điều này. const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
1Bạn có thể chạy phần trên để tạo bảng
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
4, để điền vào một số trích dẫn hay liên quan đến lập trình, hãy chạy câu truy vấn SQL chèn saurm -rf public
7Truy vấn trên sẽ thêm 15 dấu ngoặc kép vào bảng, đây sẽ là điểm khởi đầu tốt cho API nhận dấu ngoặc kép. Lưu ý rằng id 2 bị thiếu và điều này được thực hiện có mục đích. Bạn cũng có thể xem tệp init cơ sở dữ liệu tại đây
Nối dây nút. js với MySQL
Ở giai đoạn này, chúng tôi sẽ kết nối với MySQL từ Node. ứng dụng js express. Để làm nhiệm vụ này, chúng ta sẽ sử dụng thư viện Mysql2. Nếu bạn đang hỏi tại sao không phải là Mysql mặc định. Đó là bởi vì 2 lý do chính
- Mysql2 có một trình bao bọc cho những lời hứa ngoài hộp
- Mysql2 hỗ trợ nhanh hơn và an toàn hơn
Nếu bạn muốn so sánh trực tiếp hai thư viện này, vui lòng truy cập so sánh npm
Cài đặt mysql2 trong ứng dụng cấp tốc
Để bắt đầu truy vấn cơ sở dữ liệu MySQL bằng Nodejs, đầu tiên chúng ta sẽ cài đặt thư viện
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
3 với npmrm -rf public
9Lệnh trên sẽ cài đặt thư viện
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
3 và cũng thêm nó vào tệp const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
5. Bước tiếp theo là cập nhật tuyến đường const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
6 để hiển thị các trích dẫn từ cơ sở dữ liệu thay vì trích dẫn tĩnhHiển thị báo giá - Nhận API
Khi bạn nhấn
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
7 sau khi khởi động ứng dụng express js, bạn có thể thấy nội dung như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
0Hãy lấy dữ liệu tương tự từ bảng cơ sở dữ liệu của chúng tôi
const express = require['express'];
const router = express.Router[];
/* GET quotes listing. */
router.get['/', function[req, res, next] {
res.json[{
data: [
{
quote: 'There are only two kinds of languages: the ones people complain about and the ones nobody uses.',
author: 'Bjarne Stroustrup'
}
],
meta: {
page: 1
}
}];
}];
module.exports = router;
4 và ứng biến thêm về nóĐể hiển thị nhiều trích dẫn, chúng tôi sẽ thay đổi phản hồi tĩnh bằng phản hồi động. Để làm được điều đó, chúng ta sẽ cần kết nối với cơ sở dữ liệu. Hãy tạo một tệp cấu hình có thông tin đăng nhập cơ sở dữ liệu như bên dưới có tên là
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
9 ở thư mục gốc của dự án [ngoài ứng dụng. js]cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
1Chúng tôi đã tạo một tệp
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
9 có thông tin đăng nhập cho cơ sở dữ liệu được lấy từ biến môi trường. Nếu các biến môi trường không được đặt, chúng tôi sử dụng các giá trị dự phòngSau đó, tạo tệp
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
21 trong thư mục cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
22 trông giống như saucd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
2Trong trình bao bọc DB đơn giản này, chúng tôi tạo một nhóm kết nối cho MySQL. Vì cấu hình của chúng tôi có
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
23 trên 2 nên nó sẽ tạo tối đa 2 kết nối tới cơ sở dữ liệu. Sau đó, có một phương thức cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
24 đơn giản được đưa ra có thể chạy truy vấn SQL với các tham số đã choSau đó, tạo một tệp
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
25 với nội dung saucd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
3Cho đến thời điểm này, đây là một tệp rất đơn giản bao gồm dịch vụ
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
26 được tạo ở trên. Sau đó, có một hàm cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
27 hiển thị với mô-đun. xuất khẩu. Coi chừng điều này sẽ truy vấn tất cả các bản ghi trên cơ sở dữ liệu sẽ là 15 ở giai đoạn này. Chúng tôi sẽ làm cho nó được phân trang trong bước tiếp theoDo đó, chúng tôi sẽ kết nối chức năng
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
27 trong cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
25 với tuyến đường const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
6 trong tệp cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
51 như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
4Tôi nghĩ đây là thời điểm thích hợp để cài đặt
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
52, tôi khuyên bạn nên cài đặt nó trên toàn cầu như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
5Với gật đầu, bạn có thể khởi động lại Node. js trên mỗi lần thay đổi mã, điều này rất hữu ích khi phát triển. Bạn có thể chạy ứng dụng ngay bây giờ với
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
52 như bên dưới để kiểm tra kết quả trên trình duyệtcd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
6Khi bạn nhấn
const express = require['express'];
const cookieParser = require['cookie-parser'];
const logger = require['morgan'];
const indexRouter = require['./routes/index'];
const quotesRouter = require['./routes/quotes'];
const app = express[];
app.use[logger['dev']];
app.use[express.json[]];
app.use[express.urlencoded[{ extended: false }]];
app.use[cookieParser[]];
app.use['/', indexRouter];
app.use['/quotes', quotesRouter];
module.exports = app;
7 trên trình duyệt, bạn sẽ thấy một kết quả tương tự hoặc nhiều cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
55 trên trình duyệtNếu bạn quay lại và kiểm tra bảng điều khiển nơi bạn đã chạy
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
52, bạn sẽ có thể thấy nội dung như bên dướiNếu bạn thay đổi bất kỳ tệp nào, máy chủ sẽ khởi động lại do gật đầu. Trong bước tiếp theo của Nút này. js Hướng dẫn MySQL với express js, chúng ta sẽ phân trang kết quả 10 trích dẫn trên trang. Nếu bạn muốn xem các thay đổi về mã mà chúng tôi đã thực hiện để lấy các trích dẫn từ cơ sở dữ liệu thì đây là yêu cầu kéo
Phân trang các trích dẫn cho Node. hướng dẫn js MySQL
Tại thời điểm này, chúng tôi sẽ bắt đầu phân trang các trích dẫn 10 trích dẫn trên mỗi trang. Đã được đưa vào tệp
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
57 ở dòng số. 14 là cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
58 chúng tôi sẽ sử dụng nó ngay bây giờChúng tôi sẽ thêm một
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
59 vào thư mục gốc trông giống như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
7Chúng tôi sẽ sử dụng người trợ giúp này. js để tính phần bù. Hàm khác sẽ trả về một mảng trống nếu biến rows trống, ngược lại, nó sẽ trả về các hàng
Tiếp theo, chúng tôi sẽ cập nhật truy vấn để nhận báo giá trong dịch vụ
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
25. Dịch vụ báo giá thay đổi trông giống như dưới đâycd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
8Sự khác biệt chính của tính năng phân trang so với dịch vụ trích dẫn cũ hơn là truy vấn đã bù đắp và giới hạn được chuyển cho nó. Lưu ý rằng chúng tôi đang sử dụng một câu lệnh đã chuẩn bị để đảm bảo an toàn cho truy vấn khỏi SQL injection. Bạn có thể đọc thêm về ngăn chặn SQL injection với các câu lệnh đã chuẩn bị trong câu trả lời stackoverflow này
Tệp khác được thay đổi để có tính năng phân trang là
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
51. Các trích dẫn mới. lộ trình js bây giờ trông giống như bên dướicd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
9Thay đổi duy nhất ở đây là chúng ta chuyển tham số truy vấn
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
82 cho hàm cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
27. Điều này sẽ cho phép phân trang như cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
84, v.v.Nếu bạn chạy ứng dụng và nhấn vào trình duyệt với
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
85, bạn sẽ thấy 5 trích dẫn như bên dướiVì vậy, những gì đã xảy ra ở đây, thay đổi chính là cách chúng tôi xây dựng truy vấn
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
86. Tùy thuộc vào số trang, chúng tôi tính toán độ lệch và chuyển một truy vấn khác- Đối với trang 1, truy vấn là
87cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
- Đối với trang 2, truy vấn trở thành
88cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
Như bạn thấy, phép tính bù giúp bạn có thể nhận được tập hợp 10 dấu ngoặc kép tiếp theo trong đó 10 là số không. các mục chúng tôi muốn liệt kê theo cấu hình của chúng tôi. Đây có thể là một thay đổi lớn cần hiểu ngay trong một lần, vui lòng xem yêu cầu kéo này để biết tất cả mã đã thay đổi để tính năng phân trang đi vào hoạt động
Bước tiếp theo
Khi bạn có một API GET cơ bản và đang chạy, bạn có thể thêm nhiều tính năng hơn vào nó như
- Thêm một tuyến đường mới như
89 để nhận một trích dẫn theo idcd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
- Bạn có thể thêm bộ lọc trích dẫn/khả năng tìm kiếm như của tác giả chẳng hạn
- Bạn cũng có thể tìm kiếm theo từ bằng cách sử dụng SQL Giống như
70 có thể đưa ra tất cả các trích dẫn có từ máy tính trong đórm -rf public
- Để làm cho vấn đề trở nên thú vị khi thực hành, hãy thêm một cột mới có tên là
71 và cập nhật APIrm -rf public
Tôi sẽ để bạn quyết định về những thứ khác mà bạn muốn xây dựng dựa trên điểm cuối API GET báo giá REST mới được tạo. Bước tiếp theo là tạo API POST để tạo báo giá mới
Lưu báo giá mới - POST API cho Node. hướng dẫn js MySQL
Để tạo báo giá mới, chúng tôi sẽ cần API bài đăng. Trước khi bắt tay vào việc, hãy làm rõ các giả định của chúng ta
- Chúng tôi sẽ không sử dụng thư viện xác thực phức tạp như Joi cho bản demo này
- Chúng tôi sẽ giữ mã phản hồi đơn giản nhất có thể
- Chúng tôi sẽ không xây dựng các điểm cuối PUT [cập nhật] và XÓA. Vì bạn có thể chạy CẬP NHẬT truy vấn CHÈN và XÓA sẽ tương tự với sự khác biệt của ID/ID báo giá được chuyển trong phần thân yêu cầu
Hãy bắt đầu bẻ khóa mã cho API báo giá POST. Điều đầu tiên là chúng ta sẽ thêm đường dẫn báo giá POST vào tệp
cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
51 ngay phía trên dòng rm -rf public
73rm -rf public
0Sau đó, chúng tôi sẽ thêm các hàm
rm -rf public
74 và rm -rf public
75 trong tệp dịch vụ cd nodejs-mysql && npm install && DEBUG=nodejs-mysql:* npm start
25 và hiển thị rm -rf public
75 trong mô-đun. xuất khẩu như dưới đâyrm -rf public
1Tôi biết việc xác thực còn hơi nguyên thủy nhưng hiện tại nó đã hoạt động. Cách tốt hơn để làm điều đó là sử dụng Joi hoặc thư viện xác thực tương tự. Tiếp theo, hãy thêm một trình xử lý lỗi mới để hiển thị xác thực của chúng tôi hoặc các lỗi khác dưới dạng phản hồi JSON trong tệp
rm -rf public
78 như bên dướirm -rf public
2Đảm bảo đặt nó ngay phía trên dòng
rm -rf public
79 để chúng được thực thi sau các tuyến đường. Bây giờ bạn có thể khởi động ứng dụng của mình và thử các lệnh cURL bên dướirm -rf public
3Dưới đây là đầu ra của cả hai lệnh cURL
Tùy thuộc vào cấu hình và bản ghi cơ sở dữ liệu, bạn có thể gặp lỗi
rm -rf public
90. Chỉ cần thay đổi trích dẫn thành một cái gì đó khác và thử. Mã thay đổi cho API trích dẫn POST nằm trong yêu cầu kéo nàyBạn có thể tìm thấy rất nhiều trích dẫn để thử ở đây
Vậy là bạn đã có API RESTful cơ bản dành cho báo giá có thể tạo báo giá mới với điểm cuối POST. Có một điểm cuối GET để lấy dấu ngoặc kép với phân trang
Nếu bạn muốn thử một DB được lưu trữ, bạn có thể kiểm tra Nút này. hướng dẫn js HarperDB
TLDR;
Vì tất cả mã nằm trong kho lưu trữ Github công khai, bạn có thể bắt đầu ngay lập tức bằng cách chạy các lệnh sau
- Sao chép kho lưu trữ.
91rm -rf public
- Sau đó chạy
92rm -rf public
- Sau đó thực hiện
93rm -rf public
- Do đó chạy.
94rm -rf public
- Sau đó nhấn
95 trên trình duyệt yêu thích của bạnrm -rf public
- Bạn sẽ thấy một cái gì đó như dưới đây
Bạn có thể xem mã và thử xem toàn bộ mọi thứ được ghép lại với nhau như thế nào trong Nút này. js MySQL hướng dẫn với Express Js để có dấu ngoặc kép REST API. API này có thể hoạt động như một cơ sở tốt cho một Nút. js vi dịch vụ
Bạn có thể cập bến ứng dụng API REST theo hướng dẫn từng bước này. Sau khi ứng dụng đó được cập nhật, bạn có thể dễ dàng lưu trữ ứng dụng đó trên một thứ gì đó như Google Cloud Run. Nếu bạn muốn bắt đầu thử nghiệm nhanh chóng mà không cần Docker, tôi khuyên bạn nên sử dụng Glitch. Bạn có thể thử 3 Nút. tùy chọn lưu trữ miễn phí js nữa
Phần kết luận
Tạo API REST bằng Node. js và MySQL không quá khó
Một số thứ không được quan tâm trong Nút này. js Hướng dẫn MySQL với Express nhưng đây là một điểm khởi đầu tuyệt vời
Làm cách nào để sử dụng MySQL2 trong nodejs?
Dưới đây là cách sử dụng MySQL trong Node theo năm bước đơn giản. .Tạo một dự án mới. mkdir kiểm tra mysql && cd kiểm tra mysqlTạo một gói. tập tin json. npm init -yCài đặt mô-đun mysql. npm cài đặt mysqlTạo một ứng dụng. js và sao chép đoạn mã bên dưới [chỉnh sửa trình giữ chỗ cho phù hợp]Chạy tập tin. ứng dụng nútMySQL2 là gì?
Dự án MySQL2 là sự tiếp nối của MySQL-Native . Mã trình phân tích cú pháp giao thức đã được viết lại từ đầu và api đã thay đổi để phù hợp với mysqljs/mysql phổ biến. Nhóm MySQL2 đang làm việc cùng với nhóm mysqljs/mysql để tìm ra mã được chia sẻ và chuyển nó vào tổ chức mysqljs.Làm cách nào để chèn nhiều hàng trong mysql bằng nút js?
var mysql = require['node-mysql']; . tạo kết nối [{. }]; . params"; var giá trị = [ ['demian', 'demian@gmail. com', 1], ['john', 'john@gmail. com', 2], ['mark', 'mark@gmail. com', 3], ['pete', 'pete@gmail. com', 4] ];Làm cách nào để kết nối MySQL với Sequelize node js?
Kết nối MySQL với Node JS. .Mở máy chủ web ExpressThêm dữ liệu cấu hình cho cơ sở dữ liệu MySQL hiện cóMở một phần tiếp theoTrong phần tiếp theo, hãy tạo một mô hình hướng dẫnViết bộ điều khiểnXác định tất cả các tuyến để xử lý từng chức năng CRUDmở người đưa thưKiểm tra API REST CRUD