Trang đăng nhập với nút js và MongoDB

Trong bài này mình sẽ viết về cách tạo một SignUp Project với NodeJs và MongoDB. Hãy bắt đầu

Tôi sẽ sử dụng Visual Studio Code làm trình biên dịch. Trong dự án này, chúng tôi cần một gói. tập tin json. Đối với điều này, trong thiết bị đầu cuối, chúng tôi sẽ viết

khởi tạo npm

yêu cầu. Sau lệnh đó, để điền vào gói của chúng tôi. json, nó muốn một số thông tin. Tôi để nó như vậy và chỉ cần nhấn Enter. Tôi chỉ cần thay đổi trong gói. json, “chính”. "mục lục. js” vào “máy chủ. js”

Với lệnh npm install Express dotenv sẽ xây dựng các mô-đun Express và dotenv. Vì vậy, lệnh này tạo node_modules và gói-lock. tập tin json

Sau đó, tôi viết npm install -D gật đầu và cài đặt gật đầu

Các mô-đun của chúng tôi, được thấy trong gói. phần "phụ thuộc" của tệp json. Tôi cần thực hiện một số thay đổi trong tệp này. Trong phần “scripts” của tệp, tôi sẽ thay đổi “test” thành “start” và viết. "máy chủ nút". Vì vậy, máy chủ của chúng tôi bắt đầu khi tôi viết npm start. Cứ như thế tôi viết “dev”. “máy chủ gật đầu”

Trong thư mục chính, tôi sẽ tạo máy chủ. tập tin js. Tệp này sẽ là tệp chính của phần phụ trợ của chúng tôi. Hơn tôi sẽ yêu cầu Express và dotenv. Sau đó mình sẽ tạo thư mục Config và trong thư mục này config. env. Cấu hình bên trong. env, chỉ cần viết PORT=5000, vì cổng này là cổng đang chạy của máy chủ của chúng tôi

Vì vậy, chúng tôi có thể đi máy chủ. tập tin js. Tôi sẽ yêu cầu các biến env với dotenv. cấu hình ({đường dẫn. ‘. /config/config. vi'})

Tôi tạo biến có tên ứng dụng và sử dụng phương thức Express, hơn là với một biến khác có tên là PORT write server’s running port

Sau đó, trong ứng dụng. nghe () Tôi sẽ cung cấp thông tin PORT và viết trong bảng điều khiển. log `Máy chủ đang chạy trên ${PORT}`. Nó lấy thông tin Port một cách linh hoạt

Máy chủ của chúng tôi. tệp js trông giống như vậy

máy chủ. js

Tôi sẽ viết npm run dev và máy chủ đang chạy

Bây giờ, chúng ta cần Postman. Trong Postman, tôi sẽ tạo một yêu cầu và ghi địa chỉ đang chạy của máy chủ. Trong hướng dẫn này, tôi sẽ sử dụng http. //máy chủ cục bộ/5000

Tôi sẽ đi đến máy chủ. js và sử dụng phương thức get trong Express. Với biến ứng dụng tôi sẽ viết

ứng dụng. get(‘/’, (req, res) => {

độ phân giải. trạng thái(200). json({thành công. đúng, tin nhắn. “Hiển thị tất cả người dùng”});

});

Tôi sẽ chạy máy chủ với npm run dev và truy cập Postman

Người phát thơ

Điều đó có nghĩa là, mã của chúng tôi thành công. Như vậy, chúng ta cũng sẽ viết các phương thức khác. Tất cả các phương pháp trông giống như

máy chủ. js

Phương pháp với /. id đang hoạt động như http. //máy chủ cục bộ. 5000/1 , những người khác thích http. //máy chủ cục bộ. 5000

Đến giai đoạn này, tôi chạy mọi phương thức trong máy chủ. js nhưng điều đó không đúng. Vì vậy, tôi tạo thư mục bộ điều khiển, trong người dùng này. js và di chuyển tất cả các phương thức với một số thay đổi. người dùng. tập tin js trông giống như

bộ định tuyến/người dùng. js

Để cập nhật dự án của chúng tôi, chúng tôi phải di chuyển mã trong các tuyến/người dùng. js cho bộ điều khiển/người dùng. js và thực hiện một số thay đổi trong tệp đầu tiên. Bạn có thể chạy mọi thứ trong máy chủ. js nhưng nếu dự án của bạn phức tạp hơn thì dự án này bạn phải thực hiện thay đổi này

bộ điều khiển/người dùng. tập tin js trông như thế

bộ điều khiển/người dùng. js

Vì vậy, những gì chúng tôi sẽ làm với các tuyến đường/người dùng. tập tin js? . Chúng tôi yêu cầu bộ điều khiển/người dùng. js, với những người dùng đầu tiên đó. js có phương thức này

hằng số {

nhận người dùng,

người dùng,

tạo người dùng,

người dùng cập nhật,

xóa người dùng

} = yêu cầu (‘. /bộ điều khiển/người dùng’)

tuyến đường/người dùng. tập tin js trông giống như

tuyến đường/người dùng. js

Bây giờ, chúng tôi quay lại máy chủ. js cho các yêu cầu gửi của bạn được thấy trong bảng điều khiển. Đối với điều này, chúng tôi tạo một thư mục có tên là phần mềm trung gian và bên trong đó có một tệp có tên là logger. js. Tập tin này có mã này

Const logger = (req, res, next) => {

Bảng điều khiển. log(`${req. phương thức} ${req. giao thức}. //${req. get('host')}${req. priginUrl}`)

Kế tiếp();

}

yêu cầu. phương thức là (lấy, đặt. ), yêu cầu. giao thức là http, req. get(‘host’) là máy chủ cục bộ và yêu cầu. originalUrl là / một phần. Trong máy chủ. js, chúng tôi viết ứng dụng. use(logger) và sử dụng phần mềm trung gian này. Nếu bạn quay lại Postman

, gửi yêu cầu và bạn có thể thấy phương thức và url trong thiết bị đầu cuối

Vì vậy, chúng ta phải kết nối cơ sở dữ liệu. Trong hướng dẫn này, chúng tôi sẽ sử dụng MongoDB. Để làm được điều đó, chúng tôi sẽ tạo một tài khoản trong MongoDB và tạo cơ sở dữ liệu, cài đặt MongoDB Compass, sao chép chuỗi kết nối. Chuỗi kết nối trông giống như

mongodb+srv://:@cluster0.fxdx.mongodb.net/test

We change , and test parts. Test will be our database’s name, so you can give it a name as you want.

Sau cài đặt này, chúng tôi có thể kết nối với cơ sở dữ liệu

lệnh npm install mongoose sẽ cài đặt toàn bộ gói. Chúng tôi sẽ tạo thư mục cấu hình và bên trong nó, db. tập tin js. Chúng tôi sẽ đi đến cấu hình. env và tạo biến MONGO_URI, sao chép chuỗi kết nối. db. tập tin js trông giống như

cấu hình/cấu hình. env

Sau tập tin này, chúng tôi sẽ đi đến máy chủ. js vì chúng tôi cần yêu cầu db. tập tin js

const connectDB = yêu cầu(‘. /config/db’)

connectDB() sẽ kết nối với cơ sở dữ liệu. Trong thiết bị đầu cuối, bạn có thể thấy MongoDB được kết nối

Vì vậy, chúng ta có thể tạo mô hình của mình. Chúng ta sẽ tạo một thư mục có tên models và bên trong nó User. tập tin js. Bạn có thể thay đổi như bạn muốn. tôi tạo ra như vậy

mô hình/Người dùng. js

Bây giờ, chúng ta phải tạo người dùng. Đối với phương pháp này, chúng tôi sẽ thực hiện một số thay đổi trong Postman. Đầu tiên chúng ta sẽ đến phần Headers, bên trong Presets click vào JSON Content Type. Chúng tôi sẽ nhấp vào tùy chọn thô của Body part. Vì vậy, chúng tôi có thể yêu cầu dữ liệu vào cơ sở dữ liệu. Trước đó, MongoDB Compass trông như thế này

Chúng tôi sẽ đi đến bộ điều khiển / người dùng. js, hãy thay đổi hàm createUser bằng cái này

xuất khẩu. createUser = async (req, res, next) => {

const người dùng = đang chờ người dùng. tạo (yêu cầu. thân hình)

độ phân giải. tình trạng(201). json({

thành công. ĐÚNG VẬY,

dữ liệu. người dùng

})

}

Chúng tôi sẽ đi đến Người đưa thư và Đăng một người dùng

Chúng tôi không tạo Người dùng nhưng tôi muốn mã hóa mật khẩu. Đối với điều này, npm install bcryptjs sẽ cài đặt gói bcryptjs và yêu cầu điều này. Sau đó, chúng tôi sẽ viết mã sau theo mô hình của chúng tôi

Lược đồ người dùng. pre('save', async function(next) {

nếu như(. cái này. isModified('mật khẩu')) {

Kế tiếp();

}

const muối = đang chờ bcrypt. genSalt(10);

cái này. mật khẩu = đang chờ bcrypt. hàm băm (cái này. mật khẩu, muối);

)};

Vì vậy, hãy xem cách lấy tất cả các bản ghi trong cơ sở dữ liệu

xuất khẩu. getUsers = async (req, res, next) => {

thử{

const người dùng = đang chờ người dùng. tìm thấy();

độ phân giải. trạng thái(200). json({thành công. đúng, dữ liệu. người dùng })

}bắt(err){

độ phân giải. trạng thái(400). json({thành công. SAI})

}

}

chức năng getUser

xuất khẩu. getUser = async (req, res, next) => {

thử {

const người dùng = đang chờ người dùng. findById(yêu cầu. thông số. nhận dạng);

độ phân giải. trạng thái(200). json({thành công. đúng, dữ liệu. người dùng})

} bắt (lỗi) {

độ phân giải. trạng thái(400). json({thành công. SAI});

}

}

Sự khác biệt giữa các hàm getUser và getUsers là các phương thức find() và findById()

Để cập nhật người dùng, chúng tôi mã hóa như vậy

xuất khẩu. updateUser = async (req, res, next) => {

const người dùng = đang chờ người dùng. findByIdAndUpdate(req. thông số. id, yêu cầu. thân hình, {

mới. ĐÚNG VẬY,

runValidators. ĐÚNG VẬY

})

nếu như(. người dùng) {

trả lại độ phân giải. trạng thái(400). json({thành công. SAI})

}

độ phân giải. trạng thái(200). json({thành công. đúng, dữ liệu. người dùng})

}

Và chức năng xóa người dùng

xuất khẩu. xóaUser = async (req, res, next) => {

thử {

const người dùng = đang chờ người dùng. findByIdAndDelete(req. thông số. nhận dạng)

nếu như(. người dùng) {

trả lại độ phân giải. trạng thái(400). json({ thành công. SAI });

}

độ phân giải. trạng thái(200). json({ thành công. đúng, dữ liệu. {} })

} bắt (lỗi) {

độ phân giải. trạng thái(400). json({ thành công. SAI });

}

}

Vì vậy, hãy xem làm thế nào chúng ta có thể xác minh. Đầu tiên chúng ta sẽ tạo thư mục route và bên trong đó là auth. tập tin js. Như thế này, bộ điều khiển/auth. js sẽ tạo và chúng tôi sẽ chuyển đến tệp này

Chúng tôi sẽ yêu cầu mô hình Người dùng bên trong tệp, như thế

const Người dùng = yêu cầu (‘. /mô hình/Người dùng’)

Sau đó,

xuất khẩu. register = async (req, res, next) => {

const {tên, họ, email, mật khẩu} = req. thân hình;

// Tạo người dùng

const người dùng = đang chờ người dùng. tạo nên({

họ,

họ,

e-mail,

mật khẩu

})

độ phân giải. trạng thái(200). json({thành công. đúng, mã thông báo, id})

}

Chúng tôi sẽ lưu nó và đi đến các tuyến/auth. tập tin js và viết

const express = yêu cầu ('bày tỏ')

const { đăng ký, đăng nhập } = yêu cầu (‘. /bộ điều khiển/auth')

Và chúng tôi sẽ đi đến máy chủ. js và sử dụng trong đó

const auth = yêu cầu ('. /tuyến/auth');

ứng dụng. sử dụng ('/', xác thực);

Bây giờ, hãy vào Postman và Post http. //máy chủ cục bộ. 5000/đăng ký yêu cầu. Kết quả là thành công. đúng, điều đó có nghĩa là nó hoạt động

Chúng tôi sẽ sử dụng jsonwebtoken để kết nối dữ liệu

npm cài đặt jsonwebtoken

sẽ cài đặt gói. Trong bộ điều khiển/xác thực. js, bên dưới Yêu cầu người dùng, chúng tôi sẽ viết

const jwt = yêu cầu('jsonwebtoken')

const getSignedJwtToken = id => {

trả lại jwt. dấu hiệu ({id}, quá trình. env. JWT_BÍ MẬT, {

hết hạnTrong. quá trình. env. JWT_EXPIRE

})

}

Sau đó, chúng tôi sẽ đi đến cấu hình. env, viết JWT_SECRET = anything, JST_EXPIRE= 30d

Một lần nữa trong bộ điều khiển/auth. js, chúng tôi sẽ viết

mã thông báo const = getSignedJwtToken(người dùng. _nhận dạng);

độ phân giải. trạng thái(200). json({thành công. đúng, mã thông báo})

Sau đó, khi chúng tôi truy cập Postman và gửi yêu cầu, chúng tôi có thể thấy mã thông báo. Sao chép mã thông báo đó và dán https. //jwt. io, bạn sẽ thấy bên dưới Tải trọng. Id phần dữ liệu. Nếu bạn so sánh điều này với trong cơ sở dữ liệu, bạn có thể thấy chúng giống nhau

Cuối cùng chúng ta sẽ đăng nhập. Để so sánh mật khẩu, chúng tôi sẽ lại sử dụng bcryptjs. Chúng tôi sẽ chuyển đến Mô hình người dùng và thêm phương thức mới

Lược đồ người dùng. phương pháp. matchPassword = async function (enteredPassword) {

quay lại chờ bcrypt. so sánh (đã nhập Mật khẩu, cái này. mật khẩu);

};

Sau đó, chúng tôi sẽ chuyển đến bộ điều khiển/auth. js và tạo thông tin đăng nhập. Tạo một thư mục có tên utils và tệp có tên ErrorResponse. js và dán đoạn mã sau vào bên trong nó

Làm cách nào để kết nối trang đăng nhập với cơ sở dữ liệu MongoDB bằng NodeJS?

Đăng nhập và đăng ký Node js Express với MongoDB .
Bước 1 – Cài đặt ứng dụng và mô-đun Node JS Express
Bước 2 – Kết nối ứng dụng Node Express Js với MongoDB
Bước 3 – Tạo mô hình
Bước 4 – Nhập mô-đun và tạo tuyến đường trong ứng dụng. js
Bước 5 – Tạo Chế độ xem Đăng nhập & Đăng ký
Bước 6 – Bắt đầu phát triển máy chủ

Làm cách nào để kết nối MongoDB với trang đăng nhập?

Cách kết nối với MongoDB .
Tạo cơ sở dữ liệu trên MongoDB. Kết nối với vỏ MongoDB. Tạo cơ sở dữ liệu "testdb". Tạo bộ sưu tập "người dùng" và chèn nó vào "testdb"
Thiết lập người dùng. Kết nối với db quản trị. Tạo quản trị viên người dùng. .
Tạo kết nối tới MongoDB trên CPD. Đặt thông tin cần thiết

Làm cách nào để tạo trang đăng nhập trong NodeJS?

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xây dựng một biểu mẫu đăng nhập đơn giản với Node. js. .
Bắt đầu xây dựng một Node. biểu mẫu đăng nhập js
Thiết lập kết nối cơ sở dữ liệu
Thiết lập trang chủ
Tạo biểu mẫu đăng nhập và đăng ký
Đăng ký người dùng

Bạn sẽ kết nối NodeJS và MongoDB như thế nào?

Để kết nối một Nút. js sang MongoDB, chúng ta phải sử dụng thư viện có tên là Mongoose . cầy mangut. kết nối ("mongodb. //máy chủ cục bộ. 27017/collectionName", { useNewUrlParser. đúng, sử dụngUnifiedTopology. đúng });