Hướng dẫn session nodejs
Nội dung bài viết Đây là một bài viết đã được viết cách đây nhiều năm. Nó được lưu trữ ở đây như một sự tò mò về
lịch sử phát triển express session. Xin đừng cho rằng bất cứ điều gì ở đây vẫn chính xác hoặc đại diện cho ý kiến hiện tại của tôi. Bài viết mới được giới thiệu ở đây. Hôm bài viết này tôi và các bạn đi tìm hiều về NodeJS Session. Và
Node.JS Session sẽ được viết và demo trong Express JS. Cụ thể hơn đó chính là sử dụng Express-session một middleware trong ExpressJs. Để dễ hình dung và thực tế hơn về NodeJS Session thì tôi sẽ làm một ví dụ và sẽ upload lên github, các bạn có thể download về ở cuối bài viết. Và phần sau tôi sẽ sử dụng redis để thay thế Express-session một cách hiệu quả hơn. Còn bây giờ nhiệm vụ của các bạn là đọc bài viết sau
đó chạy demo khi download tại github. Để thay thế bài viết này, chúng tôi nâng cấp bài viết mới tại đây. Câu hỏi khá nhàm chán, nhưng cũng như các bài viết khác chúng ta cần phải giải thích lại. Session là một tập tin nhỏ được lưu trữ trên backend hay còn gọi là
server. Session được dùng phổ biến trong tất cả các ngôn ngữ lập trình và hầu như trong các ứng dụng có kết nối database. Nếu như login nodejs express và logout nodejs express của mỗi ứng dụng mà không có session thì không biết sẽ làm cho dev mệt mỏi tới đâu. Store Session in NodejsCó nhiều cách để lưu trữ những session trong nodejs này nhưng dưới đây tôi sẽ liệt kê những phương pháp phổ biến cũng như tôi luôn dùng đó là:
nodejs session exampleBây giờ chúng ta đi đến nội dung chính của bài học hôm nay về NodeJS Session, đó là sử dụng Express-session một middleware trong ExpressJs để quản lý session trong express js. Create folder nodejs-session-expressjs AnonyStick$ mkdir nodejs-session-expressjs && cd nodejs-session-expressjs express-session npm package.json { "name": "nodejs-session-expressjs", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", "express-session": "^1.17.0" } } Create file app.js const express = require('express'); const session = require('express-session'); const app = express(); app.use(session({ resave: true, saveUninitialized: true, secret: 'somesecret', cookie: { maxAge: 60000 }})); var server = app.listen(3000, "127.0.0.1", function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port) }); //set session app.get('/set_session', (req, res) => { //set a object to session req.session.User = { website: 'anonystick.com', type: 'blog javascript', like: '4550' } return res.status(200).json({status: 'success'}) }) //set session app.get('/get_session', (req, res) => { //check session if(req.session.User){ return res.status(200).json({status: 'success', session: req.session.User}) } return res.status(200).json({status: 'error', session: 'No session'}) }) //destroy session app.get('/destroy_session', (req, res) => { //destroy session req.session.destroy(function(err) { return res.status(200).json({status: 'success', session: 'cannot access session here'}) }) }) Trong ví dụ này tôi lướt qua 3 chức năng chính đó là Get Session express jshttp://127.0.0.1:3000/get_session --> nếu nó trả về results như hình dưới thì chưa có session còn như hình dưới này thì bạn đã có Session http://127.0.0.1:3000/set_session
Destroy Session express jshttp://127.0.0.1:3000/destroy_session Done() Như vậy là chúng ta cũng đã tìm hiểu về một ví dụ về nodejs session sử dụng express session. Hy vọng các bạn đọc xong không để đó mà sẽ thực hành lại bài này. Ở bài sau tôi sẽ giúp các bạn hiểu rõ hơn về cách store session in redis. DOWNLOAD Source: nodejs session github Cảm ơn các bạn đã đọc. |