hàm getUser [id, gọi lại] {
gọi lại [null, { biệt danh. 'Teddy' }];
gọi lại [Lỗi mới ['Không tìm thấy người dùng']];
gọi lại chức năng [lỗi, người dùng] {
bảng điều khiển. lỗi [lỗi. tin nhắn];
bảng điều khiển. log[`Đã tìm thấy người dùng. Biệt danh của họ là. ${người dùng. biệt danh}`];
const getUserPromise = sử dụng. promisify[getUser];
bảng điều khiển. log[`Đã tìm thấy người dùng. Biệt danh của họ là. ${người dùng. biệt danh}`];
bảng điều khiển. log['Không tìm thấy người dùng', lỗi];
Bài viết này giả định kiến thức cơ bản về ExpressJS, nếu bạn mới làm quen với Express, tôi khuyên bạn nên bắt đầu với Danh sách phát video sau
- Danh sách phát video ExpressJS
Tạo một dự án mới
Giả sử bạn đã cài đặt NodeJS, chỉ cần mở IDE của bạn vào một thư mục trống và thực hiện các thao tác sau trong thiết bị đầu cuối
Tạo một dự án nút mới
0PORT=5000
cài đặt phụ thuộc
1PORT=5000
nếu bạn chưa cài đặt gật đầu trên toàn cầu, hãy làm như vậy
2PORT=5000
tạo tệp máy chủ ban đầu của bạn, tệp gitignore và env
3PORT=5000
đặt những điều sau đây trong. tập tin gitignore
.env
/node_modules
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- đặt những điều sau đây trong. env, tệp này dùng để xác định các biến bạn không muốn trong mã của mình và không ở chế độ xem công khai [khóa api, thông tin đăng nhập cơ sở dữ liệu, nội dung nhạy cảm] hoặc các biến sẽ thay đổi tùy theo ngữ cảnh
PORT=5000
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
bưu kiện. json
Có thể những điều hữu ích chúng ta có thể làm trong gói. json
- Chúng tôi có thể thêm tập lệnh, bạn có thể thêm bao nhiêu tùy thích nhưng đây là những điều cơ bản tôi khuyên dùng
"scripts: {
"start": "node server.js",
"dev": "nodemon server.js"
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tập lệnh có thể được chạy bằng cách sử dụng lệnh
PORT=5000
4, ví dụ: chúng tôi có thể chạy tập lệnh dành cho nhà phát triển với PORT=5000
5- Chúng tôi cũng có thể chọn xem chúng tôi sẽ sử dụng cú pháp chung hay mô-đun, commonjs sẽ là mặc định nếu chúng tôi không làm gì, nhưng nếu chúng tôi thêm
6 vào gói. json thì chúng ta có thể sử dụng cú pháp mô-đun. Điều này ảnh hưởng đến cách chúng tôi nhập và xuất mọi thứPORT=5000
TaskCommonJSES ModuleImporting Dependency/File
PORT=5000
7PORT=5000
8Exporting from a filePORT=5000
9"scripts: {
"start": "node server.js",
"dev": "nodemon server.js"
}
0Bạn thích cái nào hơn là sở thích của riêng bạn, chỉ cần lưu ý rằng bạn có thể không nhập được các tệp JSON bằng Mô-đun ES trong các phiên bản cũ hơn [hoặc hoàn toàn sử dụng Mô-đun ES trong các phiên bản thực sự cũ] của nút và sử dụng cờ thử nghiệm để làm như vậy trong các phiên bản mới hơn
Thiết lập máy chủ cơ bản
Phiên bản CommonJS
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Phiên bản mô-đun ES
// Bring in environmental variables
import dotenv from "dotenv"
dotenv.config[]
// import express and morgan
import express from "express"
import morgan from "morgan"
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Phần mềm trung gian
Phần mềm trung gian chỉ là các hàm nhận ba đối số
1 đối tượng yêu cầu, sẽ nói thêm về điều này sau"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
2 đối tượng phản hồi, sẽ nói thêm về điều này sau"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
3 một chức năng chuyển các đối tượng req/res sang phần mềm trung gian hoặc tuyến đường tiếp theo"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
Đây là một ví dụ về phần mềm trung gian đơn giản nhất
const middlewareFunction = [req, res, next] => {
console.log["This is middleware"]
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Các chức năng của phần mềm trung gian có thể được đăng ký bằng cách sử dụng phương thức
"scripts: {
"start": "node server.js",
"dev": "nodemon server.js"
}
4 của đối tượng ứng dụng hoặc bộ định tuyến// using the middleware on all requests
app.use[middlewareFunction]
// using the middleware on certain urls
app.use["/endpoint", middlewareFunction]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Phần mềm trung gian phổ biến khác không có trong đoạn mã trước bao gồm
- CORS Để cài đặt cài đặt cors cho API
- Ghi đè phương thức Để ghi đè phương thức yêu cầu khi gửi biểu mẫu
- express-session Để thiết lập cookie phiên
Và nhiều người khác
tuyến đường
Các tuyến xác định phản hồi của máy chủ đối với yêu cầu đến là gì. Tuyến được tạo bằng cách sử dụng một trong các phương pháp sau trên đối tượng ứng dụng hoặc bộ định tuyến
5 cho các yêu cầu của bất kỳ phương pháp nào"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
6 cho các yêu cầu NHẬN"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
7 cho các yêu cầu POST"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
8 cho các yêu cầu PUT"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
9 cho các yêu cầu XÓA"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
Tất cả các chức năng này có hai đối số
- điểm cuối
- chức năng "hành động", "Bộ điều khiển" hoặc "Trình xử lý tuyến đường" lấy
1 và"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
2 làm đối số"scripts: { "start": "node server.js", "dev": "nodemon server.js" }
Đây là một ví dụ
// writing pass an anonymous function
app.get["/endpoint", [req, res] => {
res.send["The Response"]
}]
// using a named function
function routeHandler[req, res]{
res.send["the response"]
}
app.get["/endpoint", routeHandler]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đối tượng yêu cầu [độ phân giải]
Đối tượng yêu cầu đại diện cho dữ liệu từ yêu cầu đến và được chuyển đến tất cả các trình xử lý tuyến và phần mềm trung gian
-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
2 đối tượng có tiêu đề của yêu cầu đến-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
3 đối tượng với bất kỳ tham số tuyến đường nào-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
4 đối tượng với bất kỳ khóa/giá trị nào từ chuỗi truy vấn url-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
5 khóa/giá trị đối tượng của nội dung yêu cầu [được phân tích cú pháp bởi express. ulencoded hoặc express. json phần mềm trung gian]-______14_______6 phương thức của yêu cầu dưới dạng chuỗi
cộng với nhiều hơn nữa
Đối tượng phản hồi [độ phân giải]
Đối tượng phản hồi là một đối tượng được sử dụng để giúp tác giả phản hồi yêu cầu. Chủ yếu được tạo thành từ các hàm trợ giúp cho các loại phản hồi khác nhau
-______14_______7 sẽ gửi yêu cầu văn bản, html hoặc json tùy thuộc vào những gì được chuyển đến nó
-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
8 gửi đối tượng hoặc mảng javascript dưới dạng phản hồi json-
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
9hiển thị phản hồi html từ một mẫuMẫu kết xuất
Các mẫu cho phép bạn tạo các phản hồi html một cách linh hoạt, có một số công cụ tạo khuôn mẫu có thể được sử dụng, đây là một số bài viết để xem cách sử dụng chúng
- Giới thiệu về tạo khuôn mẫu nhanh
- Cheatsheet tạo khuôn mẫu nhanh
Để hiển thị một mẫu, chúng tôi sử dụng hàm
// bring in environment variables from a .env file
require["dotenv"].config[]
// import express and morgan
const express = require["express"]
const morgan = require["morgan"]
// create an application object
const app = express[]
// define a PORT variable from the environment with a default value
const PORT = process.env.PORT || 4000
/////////////////////////////////////
// ALL YOUR MIDDLEWARE AND ROUTES GO HERE
app.use[morgan["tiny"]] // middleware for logging
app.use[express.urlencoded[{extended: true}]] //middleware for parsing urlencoded data
app.use[express.json[]] // middleware for parsing incoming json
app.use["/static", express.static["static"]] // to set a folder for static file serving
/////////////////////////////////////
// Server Listener
app.listen[PORT, [] => console.log[`Listening on port ${PORT}`]]
9 có hai đối số- tên của tệp cần định vị trong thư mục dạng xem
- đối tượng javascript có dữ liệu có thể được sử dụng trong quá trình hiển thị mẫu [mỗi ngôn ngữ tạo khuôn mẫu phải có cách riêng để sử dụng dữ liệu từ đối tượng trong mẫu]
Đối tượng bộ định tuyến
Bạn có thể nhóm các tuyến đường lại với nhau bằng cách sử dụng các bộ định tuyến có thể được sử dụng để tổ chức và áp dụng phần mềm trung gian cho một nhóm tuyến đường cụ thể
Tạo bộ định tuyến
// create the router object
const router = express.Router[]
// register it with the application for routes with a certain prefix
app.use["/prefex", router]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Giống như đối tượng ứng dụng, bạn có thể đăng ký các tuyến phần mềm trung gian với bộ định tuyến
// router specific middleware
router.use[middlewareFunction]
// registering routes
router.get["/endpoint", routerHandler] // url is /prefix/endpoint
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Kết nối với cơ sở dữ liệu
Các thư viện sau đây có thể giúp bạn kết nối với các cơ sở dữ liệu khác nhau
- cầy mangut để kết nối với cơ sở dữ liệu mongo blog cầy mangut
- sắp xếp lại ORM cho cơ sở dữ liệu SQL [postgres, mysql, v.v. ]
- phản đối ORM cho cơ sở dữ liệu SQL [postgres, mysql, v.v. ]
- ORM đường nước cho cơ sở dữ liệu SQL [postgres, mysql, v.v. ]
Thực hiện cuộc gọi API
Hãy nhớ rằng bạn không thể sử dụng tìm nạp nguyên bản trong nút và jQuery chỉ là một thư viện giao diện người dùng. Nhưng bạn có một số lựa chọn