Xin chào gần như người, hôm nay mình thích demo đến những chúng ta chưa từng làm việc với ngữ điệu Nodejs hoặc dễ dàng và đơn giản là ao ước tạo một RESTful API với Node
JS

*

Cài để server

Ở đây mình cần sử dụng 4 package rất lôi cuốn dùng đó là:express sẽ được sử dụng để tạo máy chủnodemon để giúp mình theo dõi và quan sát các thay đổi đối với ứng dụng của mình bằng phương pháp xem các tệp đã biến đổi và auto khởi hễ lại trang bị chủ.dotenv để mình thêm các config mang đến database(host, port, user, pass, ...) và các config khácmysql để thao tác làm việc với database

npm install --save-dev nodemonnpm install express --savenpm install dotenv --savenpm install mysql --save
Khi setup thành công, tệp package.json của các bạn sẽ được sửa đổi để có 4 gói bắt đầu được cài đặt.

Bạn đang xem: Xây dựng api với nodejs

Mở tệp tin package.json với thêm script này vào mục scripts: "start": "nodemon server.js"

Như vậy file package.json sẽ được đổi khác thành:

"name": "nodejs_api", "version": "1.0.0", "description": "", "main": "app.js", "scripts": "start": "nodemon server.js" , "author": "", "license": "ISC", "dev
Dependencies": "nodemon": "^1.17.5" , "dependencies": "express": "^4.16.3", "dotenv": "^5.0.1", "mysql": "^2.15.0" Mở tệp server.js cùng nhập / coppy mã dưới vào tệplet express = require("express");let ứng dụng = express();let port = process.env.PORT || 3000;app.listen(port);console.log("RESTful API server started on: " + port);Trên terminal của bạn, liên tục chạy npm run start để bước đầu máy nhà và sau đó các bạn sẽ thấy
RESTful API vps started on: 3000

Tạo database

CREATE DATABASE nodejs_api;CREATE TABLE `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) mặc định NULL, `color` varchar(255) default NULL, `price` decimal(10,0) default NULL, PRIMARY KEY (`id`)) ENGINE=Inno
DB AUTO_INCREMENT=4 mặc định CHARSET=latin1;INSERT INTO `products` VALUES ("1", "Iphone X", "Black", "30000000");INSERT INTO `products` VALUES ("2", "Samsung S9", "White", "24000000");INSERT INTO `products` VALUES ("3", "Oppo F5", "Red", "7000000");Và đấy là bảng sau khoản thời gian chạy sql:

*

Tạo file kết nối Database

Trước tiên mình yêu cầu đưa những config cho database ra tệp tin .env
Đây là file .env với nội dung:

DB_HOST="localhost"DB_USER="root"DB_PASS=""DB_NAME="nodejs_api** lưu ý: ** Các chúng ta cũng có thể tạo file .env.example để lấy lên git và chuyển file .env vào .gitignore

Tiếp cho mình sẽ tạo nên file db.js:

"use strict";const mysql = require("mysql");const db = mysql.create
Connection( host: process.env.DB_HOST );module.exports = db
Như vậy là xong xuôi phần config db, khi áp dụng bạn chỉ cần require file db.js vào là có một đối tượng db để truy vấn db rồi.

Tạo routes

Dưới đây tôi đã tạo hai router cơ phiên bản (/products, và /products/product
Id) với các phương thức

/products gồm phương thức (GET và POST)/products/product
Id tất cả 3 phương thức GET , PUT và DELETE.Như bạn cũng có thể thấy, tôi đã tạo 2 router và những phương thức để gọi những hàm cách xử lý tương ứng.

Và đấy là nội dung file routes.js:

"use strict";module.exports = function(app) let products
Ctrl = require("./controllers/Products
Controller"); // todo
List Routes app.route("/products") .get(products
Ctrl.get) .post(products
Ctrl.store); app.route("/products/:product
Id") .get(products
Ctrl.detail) .put(products
Ctrl.update) .delete(products
Ctrl.delete);;Tiếp mang lại mình sẽ khởi tạo file controller và các function tương ứng cho từng routes

Tạo file controller

Trong tệp tin Products
Controller.js, mình sẽ khởi tạo 5 function gồm tên: get, detai, update, store, delete với export 5 hàm này để áp dụng trong routes.js.

"use strict"const util = require("util")const mysql = require("mysql")const db = require("./../db")module.exports = get: (req, res) => let sql = "SELECT * FROM products" db.query(sql, (err, response) => if (err) throw err res.json(response) ) , detail: (req, res) => let sql = "SELECT * FROM products WHERE id = ?" db.query(sql, Id>, (err, response) => if (err) throw err res.json(response<0>) ) , update: (req, res) => let data = req.body; let product
Id = req.params.product
Id; let sql = "UPDATE products mix ? WHERE id = ?" db.query(sql, Id>, (err, response) => if (err) throw err res.json(message: "Update success!") ) , store: (req, res) => let data = req.body; let sql = "INSERT INTO products mix ?" db.query(sql, , (err, response) => if (err) throw err res.json(message: "Insert success!") ) , delete: (req, res) => let sql = "DELETE FROM products WHERE id = ?" db.query(sql, Id>, (err, response) => if (err) throw err res.json(message: "Delete success!") ) Ở đây mình sử dụng package mysql, để mày mò cách sử dụng chi tiết của package này chúng ta cũng có thể truy cập vào:

Sắp xếp lại ngôn từ file server.js

Bên trên, mình đã có một quãng xaydungmh.com ngắn chỉ với mục đích tạo 1 server, sau khi tạo routes, controllers hoàn hảo mình vẫn sửa lại tệp tin server.js để rất có thể chạy được app hoàn chỉnh:

Dưới đây là file server.js:

const express = require("express")const phầm mềm = express()const body
Parser = require("body-parser")require("dotenv").load()const port = process.env.PORT || 3000app.use(body
Parser.urlenxaydungmh.comd( extended: true ))app.use(body
Parser.json())let routes = require("./api/routes") //importing routeroutes(app)app.use(function(req, res) res.status(404).send(url: req.original
Url + " not found"))app.listen(port)console.log("RESTful API server started on: " + port)Mình đã cập nhật thêm

body-parser nhằm trích xuất toàn bộ phần ngôn từ của request cho và hiển thị nó trên đó req.body.load dotenv để áp dụng environment variablesimport file routes để load tất cả routes đã làm được khai báo trong filethêm middleware để kiểm tra nếu request API không tồn tại
Dễ hiểu bắt buộc không nào??
*

Delete (method DELETE): localhost:3000/products/4

"message": "Delete success!"OK, như vậy mình đã hướng dẫn xong xuôi cách kiến thiết 1 RESTful API đơn giản và dễ dàng với ngôn ngữ Node
JS, bài viết dựa trên tay nghề của bản thân, nếu tất cả gì không nên sót mong các bạn bình luận để mình sửa nhé

*
)

Các bạn có thể tham khảo repo github của bản thân mình ở trên đây nhé: https://github.com/tienphat/api_nodejs_example

Nếu các bạn yêu thích nội dung bài viết và nội dung mình phân tách sẻ, chúng ta có thể tặng mình 1 cốc coffe nha ^^. Tặng liền! Cảm ơn bạn rất nhiều!

post-promotion-placement#check
Sidebar
Ad
Display
Condition" data-controller="inline-toc-analytics scroll-position sticky-ad post-promotion-placement ">
scroll-to-target-tracking#on
Click" data-label="Scroll to lớn top" data-target-selector="#page-body"> Scroll to đứng đầu
*

*

Cách thiết lập Server Express API vào Node.js

Trong bài bác hướng dẫn trước, chúng ta đã đi tìm kiếm hiểu về con kiến ​​trúc REST là gì, sáu khuyên bảo ràng buộc của REST, tìm hiểu các phương thức yêu cầu HTTP với xaydungmh.com đánh giá của chúng và giải phẫu endpoint của RESTful API.

Trong trả lời này, bọn họ sẽ thiết lập một server setup API của chúng ta. Chúng ta có thể xây dựng API với bất kỳ ngôn ngữ lập trình sẵn và phần mềm server nào, nhưng bọn họ sẽ sử dụng Node.js, trên đây là thiết đặt back-end của Java
Script cùng Express, một framework solo giản, thịnh hành cho Node.

Cài đặt

Yêu cầu trước tiên của họ là bảo đảm Node.js và npm được setup toàn cục trên đồ vật tính. Chúng ta có thể kiểm tra cả hai bằng phương pháp sử dụng cờ -v, đã hiển thị phiên bạn dạng của chúng. Mở vẻ ngoài dòng lệnh của khách hàng và gõ như sau.


1

node -v && npm -v

1v10.8.0
26.2.0

Phiên bản của bạn cũng có thể hơi khác so với của tôi, cơ mà miễn là tất cả thì chúng ta có thể bắt đầu.

Hãy sinh sản một thư mục dự án gọi là express-api và dịch rời đến nó.


1

mkdir express-api && cd express-api

hiện giờ chúng ta đã ở trong thư mục mới của mình, chúng ta cũng có thể khởi tạo dự án bằng lệnh init.


1

npm init

Lệnh này đang nhắc bạn vấn đáp một số câu hỏi về dự án công trình mà chúng ta cũng có thể điền vào hoặc không. Một khi thiết lập cấu hình đã trả tất, bạn sẽ có một tập tin package.json trông như thế này:


1

2 "name": "express-api",
3 "version": "1.0.0",
4 "description": "Node.js and Express REST API",
5 "main": "index.js",
6 "scripts":
7 "test": "echo "Error: no demo specified" && exit 1"
8 ,
9 "author": "Tania Rascia",
10 "license": "MIT"
11

hiện nay chúng ta đã có package.json, bạn có thể cài đặt những phụ thuộc cần thiết cho dự án. Suôn sẻ là bọn họ không yêu cầu không ít phụ thuộc, chỉ tất cả bốn đồ vật được liệt kê dưới đây.

Chúng ta sẽ sử dụng lệnh install theo sau mỗi phụ thuộc vào để hoàn tất tùy chỉnh cấu hình dự án của bọn chúng ta.


1

npm install body-parser express mysql request

Điều này sẽ khởi tạo ra một tập tin package-lock.json với một thư mục node_modules, với package.json của chúng ta sẽ được update để trông hệt như thế này:


1

2 "name": "express-api",
3 "version": "1.0.0",
4 "description": "Node.js & Express REST API",
5 "main": "index.js",
6 "scripts":
7 "test": "echo "Error: no chạy thử specified" && exit 1"
8 ,
9 "author": "Tania Rascia",
10 "license": "MIT",
11 "dependencies":
12 "dependencies":
13 "body-parser": "^1.18.3",
14 "express": "^4.16.3",
15 "mysql": "^2.16.0",
16 "request": "^2.88.0"
17
18

Thiết lập HTTP Server

Trước khi bước đầu thiết lập máy chủ Express, họ sẽ nhanh chóng thiết lập cấu hình một HTTP vps với mô-đun http tích đúng theo của Node, để tò mò về cách sever đơn giản vận động như thay nào.

Tạo một tập tin có tên hello-server.js. Load mô-đun http, thiết lập cấu hình số cổng (Tôi lựa chọn 3001) và tạo ra server bằng phương thức create
Server().


1

// Build a vps with Node"s HTTP module
2const http = require("http");
3const port = 3001;
4const server = http.create
Server();

Trong bài viết giới thiệu về REST, họ đã thảo luận về những yêu mong và phản nghịch hồi tương quan đến một HTTP server. Chúng ta sẽ tùy chỉnh cấu hình server của bọn họ để xử trí một yêu cầu và hiển thị URL yêu cầu ở phía server cùng hiển thị thông điệp Hello, server! cho client.


1

server**on("request"** (request, response) =>
2 console.log(`URL: $request.url`);
3 response.end("Hello, server!")
4)

Cuối cùng, bọn họ sẽ báo đến server biết cổng nào để lắng nghe và hiển thị lỗi nếu có.


1

// Start the server
2server.listen(port, (error) =>
3 if (error) return console.log(`Error: $error`);
4
5 console.log(`Server is listening on port $port`)
6)

Bây giờ, chúng ta cũng có thể khởi rượu cồn server với lệnh node theo sau là tên gọi tập tin.


1

node hello-server.js

bạn sẽ thấy đánh giá này vào terminal:


1

Server is listening on port 3001

Để kiểm tra xem server có thực sự đang làm việc hay không, hãy truy cập https://localhost:3001/ bên trên thanh showroom trình duyệt của bạn. Nếu toàn bộ đều vận động bình thường, bạn sẽ thấy Hello, server! trên trang. Vào terminal của bạn, bạn cũng trở nên thấy URL được yêu cầu.


1

URL: /
2URL: /favicon.ico

Nếu các bạn trỏ cho http://localhost:3001/hello, các bạn sẽ thấy URL: /hello.

Chúng ta cũng hoàn toàn có thể sử dụng c
URL bên trên local server của mình, nó sẽ cho chúng ta thấy header và body được trả về.


1

curl -i http://localhost:3001

1HTTP/1.1 200 OK
2Date: Wed, 15 Aug 2018 22:14:23 GMT
3Connection: keep-alive
4Content-Length: 14
5
6Hello, server!

Nếu bạn đóng cửa sổ terminal bất cứ lúc nào, máy chủ sẽ phát triển thành mất.

Bây giờ chúng ta đã hiểu về phong thái server, yêu ước và bội phản hồi chuyển động cùng nhau như thế nào, chúng ta cũng có thể viết lại vấn đề này trong Express, bao gồm một giao diện đơn giản và dễ dàng hơn và những tính năng mở rộng.

Thiết lập một Express Server

Chúng ta sẽ tạo nên một tập tin mới, app.js, đây sẽ là điểm mở màn cho dự án công trình của bọn chúng ta. Tương tự như với http hệ thống ban đầu, họ sẽ yêu cầu một mô-đun và cấu hình thiết lập một cổng nhằm bắt đầu.

Tạo một tập tin app.js và đặt đoạn xaydungmh.com sau vào đó.


1

// Require packages and set the port
2const express = require("express");
3const port = 3002;
4const app = express();

Bây giờ, thay do tìm kiếm tất cả các yêu cầu, họ sẽ nói rõ rằng họ đang search kiếm một yêu cầu GET bên trên thư mục gốc của vps (/). Lúc / nhận ra yêu cầu, họ sẽ hiển thị URL yêu mong và thông điệp "Hello, Server!".


1

app.get("/", (request, response) =>
2 console.log(`URL: $request.url`);
3 response.send("Hello, Server!");
4);

Sau cùng, họ sẽ khởi động máy chủ trên cổng 3002 bởi phương thức listen().

Xem thêm: Nhựa Ptfe Là Gì? Vật Liệu Ptfe Là Gì Tại Sao Nhựa Ptfe Có Thể Chống Cháy Được


1

// Start the server
2const hệ thống = app.listen(port, (error) =>
3 if (error) return console.log(`Error: $error`);
4
5 console.log(`Server listening on port $server.address().port`);
6);

chúng ta có thể khởi đụng server cùng với node app.js như bọn họ đã làm trước đây, nhưng chúng ta cũng có thể sửa đổi thuộc tính script trong package.json để tự động hóa chạy lệnh này.


1

"scripts":
2 "start": "node app.js"
3,

Bây giờ bạn có thể sử dụng npm start nhằm khởi cồn server và họ sẽ thấy thông báo của vps trong terminal.


1

Server listening on port 3002

Nếu bọn họ chạy curl -i bên trên URL đó, chúng ta sẽ thấy rằng, bây giờ nó được hỗ trợ bởi Express và có một số header bổ sung như Content-Type.


1

curl -i http://localhost:3002

1HTTP/1.1 200 OK
2X-Powered-By: Express
3Content-Type: text/html; charset=utf-8
4Content-Length: 14
5ETag: W/"e-ga
HDsc0MZK+Lf
Di
TM4ru
VL4p
Uq
I"
6Date: Wed, 15 Aug 2018 22:38:45 GMT
7Connection: keep-alive
8
9Hello, Server!

Thêm Middleware toàn thân Parsing

Để dễ ợt xử lý những yêu mong POST và PUT mang đến API của bọn chúng ta, họ sẽ thêm middleware body toàn thân parsing. Đây là vị trí mô-đun body-parser của họ phát huy tác dụng. Body-parser vẫn trích xuất toàn bộ phần body toàn thân của một yêu ước đến và phân tích nó thành một đối tượng JSON mà bạn có thể làm vấn đề với nó.

Chúng ta chỉ cần yêu mong mô-đun ngơi nghỉ đầu tập tin của bọn chúng ta. Thêm câu lệnh require sau vào đầu tập tin app.js của bạn.


1

const body
Parser = require("body-parser");
2...

Sau đó chúng ta nói với ứng dụng Express áp dụng body-parser, cùng tìm tìm JSON.


1

// Use Node.js body parsing middleware
2app.use(body
Parser.json());
3app.use(body
Parser.urlenxaydungmh.comd(
4 extended: true,
5));

bên cạnh ra, hãy đổi khác thông điệp của chúng ta để giữ hộ một đối tượng người dùng JSON bên dưới dạng một đánh giá thay do văn phiên bản thuần túy.


1

response.send(message: "Node.js & Express REST API");

Sau đây là tập tin app.json rất đầy đủ của chúng ta.


1

// Require packages and set the port
2const express = require("express");
3const port = 3002;
4const body
Parser = require("body-parser");
5const phầm mềm = express();
6
7// Use Node.js toàn thân parsing middleware
8app.use(body
Parser.json());
9app.use(body
Parser.urlenxaydungmh.comd(
10 extended: true,
11));
12
13app.get("/", (request, response) =>
14 response.send(
15 message: "Node.js & Express REST API"
16 );
17);
18
19// Start the server
20const hệ thống = app.listen(port, (error) =>
21 if (error) return console.log(`Error: $error`);
22
23 console.log(`Server listening on port $server.address().port`);
24);

nếu như bạn gửi curl -i mang đến server, bạn sẽ thấy rằng header hiện tại trả về Content-Type: application/json;charset=utf-8.

Định tuyến

Đến lúc này, chúng ta chỉ bao gồm một tuyến đường GET mang đến thư mục cội (/), tuy nhiên API của họ sẽ có thể xử lý toàn bộ bốn cách làm yêu mong HTTP chính trên những URL. Chúng ta sẽ tùy chỉnh thiết lập một cỗ định con đường và tạo một số dữ liệu giả để hiển thị.

Hãy chế tác một thư mục bắt đầu gọi là routes với một tập tin bên trong có tên là routes.js. Bọn họ sẽ liên kết với nó ở đầu của app.js.


1

const routes = require("./routes/routes");

để ý rằng phần mở rộng .js là không quan trọng trong yêu cầu. Hiện thời chúng ta sẽ dịch rời listener GET của áp dụng sang routes.js. Nhập xaydungmh.com sau vào routes.js.


1

const router = phầm mềm =>
2 app.get("/", (request, response) =>
3 response.send(
4 message: "Node.js and Express REST API"
5 );
6 );
7

Cuối cùng, export router để bạn cũng có thể sử dụng nó vào tập tin app.js.


1

// Export the router
2module.exports = router;

vào app.js, sửa chữa thay thế xaydungmh.com app.get() mà bạn đã sở hữu trước đó bằng lệnh hotline tới routes():


1

routes(app);

Bây giờ bạn có thể truy cập http://localhost:3002 cùng sẽ thấy giống như như trước. (Đừng quên khởi động lại server!)

Khi tất cả đã được tùy chỉnh thiết lập và hoạt động, bọn họ sẽ cung cấp một số tài liệu JSON cùng với một tuyến khác. Bây giờ chúng ta chỉ sử dụng tài liệu giả vày cơ sở tài liệu của bọn họ chưa được thiết lập.

Hãy tạo một biến đổi users trong routes.js, với một vài dữ liệu người tiêu dùng giả trong định dạng JSON.


piedpiper.com",
10 ,
11>;

họ sẽ thêm một con đường GET không giống vào cỗ định tuyến, /users và giữ hộ dữ liệu người tiêu dùng thông qua nó.


1

app.get("/users", (request, response) =>
2 response.send(users);
3);

sau thời điểm khởi động lại server, bây giờ chúng ta cũng có thể truy cập http://localhost:3002/users và các bạn sẽ thấy tất cả dữ liệu của chúng ta được hiển thị.

Lưu ý: trường hợp bạn không tồn tại tiện ích giúp xem JSON bên trên trình duyệt, tôi khuyên chúng ta nên tải về một cái, ví dụ như JSONView cho Chrome. Nó sẽ làm cho dữ liệu đọc dễ dàng hơn nhiều!

Truy cập Git
Hub Repo của chúng tôi để xem xaydungmh.com không hề thiếu cho nội dung bài viết này và so sánh nó cùng với xaydungmh.com của bạn.

Phần cầm lược

Trong bài bác hướng dẫn này, bọn họ đã học tập cách tùy chỉnh cấu hình một sever HTTP tích vừa lòng và máy chủ Express trong Node, yêu cầu thông qua bộ định tuyến đường và URL và sử dụng dữ liệu JSON với những yêu mong GET.

Trong phần sau cuối của loạt bài RESTful API, họ sẽ liên kết server Express của chúng ta với My
SQL để tạo, xem, update và xóa người tiêu dùng trong cơ sở dữ liệu, trả thiện công dụng của API.


Advertisement
Java
Script Node
Did you find this post useful?
post-vote#like"> Yes post-vote#dislike"> No
Want a weekly email summary?
Subscribe below and we’ll send you a weekly e-mail summary of all new xaydungmh.com tutorials. Never miss out on learning about the next big thing.
Sign up
*

Tania Rascia
Web Developer/Chicago
I"m Tania, a designer, developer, writer, & former chef. I love creating open source projects và contributing khổng lồ the developer community. I write the missing instruction manuals of the web.
taniarascia
Advertisement
View on Git
Hub
Advertisement
Advertisement
Looking for something khổng lồ help kick start your next project?
Envato Market has a range of items for sale lớn help get you started.
*

Word
Press Plugins
From $5
*

PHP Scripts
From $5
Java
Script
From $3
Mobile ứng dụng Templates
From $5
ga-analytics#send
Elements
Click
Event" href="https://elements.envato.com?ec_unit=ecosystem_highlight&utm_campaign=elements_tuts-ecosystem-promo_&utm_medium=promos&utm_source=xaydungmh.com">
*

Unlimited Downloads
From $16.50/month
Get access lớn over one million creative assets on Envato Elements.
ga-analytics#send
Market
Click
Event" href="https://themeforest.net?ec_unit=ecosystem_highlight&utm_campaign=elements_tuts-ecosystem-promo_&utm_medium=promos&utm_source=xaydungmh.com">
*

Over 9 Million Digital Assets
Everything you need for your next creative project.
ga-analytics#send
Placeit
Click
Event" href="https://placeit.net?ec_unit=ecosystem_highlight&utm_campaign=placeit_mkt-footer&utm_content=tuts_global-footer&utm_medium=promos&utm_source=xaydungmh.com.com">
*

Create Beautiful Logos, Designs và Mockups in Seconds
Design like a professional without Photoshop.
Join the Community
nói qua ideas. Host meetups. Lead discussions. Collaborate.
quick-links#toggle
Quick
Links">Quick Links
Explore popular categories
Curated kiến thiết Assets
Curated Web thiết kế Assets
Web Themes & Templates
Video
Placeit
Curated đoạn clip Assets
Curated Presentation Assets
Free Tools
Elements
Tuts+
Envato Tuts+
page-footer#toggle
Footer
Section" href="javascript:void(0);">
About Envato Tuts+
Terms of Use
Advertise
Help
page-footer#toggle
Footer
Section" href="javascript:void(0);">
FAQ
Help Center
25,056
Tutorials
553
Courses
19,091
Translations