Navigation

    Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search
    1. Home
    2. tuanquynet
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    tuanquynet

    @tuanquynet

    15
    Reputation
    52
    Posts
    957
    Profile views
    1
    Followers
    1
    Following
    Joined Last Online
    Website blog.tuanquynet.click

    tuanquynet Follow

    Best posts made by tuanquynet

    • RE: Thắc mắc về MQTT và Socket.io

      @Huya-Tran
      MQTT được tạo ra với ưu điểm là nhẹ, tiết kiệm băng thông của mạng. Cho nên nếu bạn cần trao đổi dữ liệu giữa low-end device, như board mạng nhúng, đường truyền chậm thì MQTT là giải pháp phù hợp.

      Socket.io là dành cho web, device phải hỗ trợ websocket. Trên điện thoại bạn phải cài thư viện HTTPClient để có thể kết nối web socker server. Thông thường thì nó nặng hơn và tốn nhiều tài nguyên hơn, CPU, Memory,...

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • Một vài khóa học NodeJS cơ bản miễn phí

      http://node.university/

      posted in Tutorials
      tuanquynet
      tuanquynet
    • RE: Project clone mp3.zing.vn gặp trục trặc, deploy trên server nước ngoài chỉ request được các bài hát việt

      @hongduy Đúng rồi, lúc trước mình ở Singapore cũng nghe được bài hát tiếng việt thôi, không nghe được tiếng anh. Vì vấn đề bản quyền, có thể zing đã chặn để tránh bị kiện tụng. Ở Việt Nam mình nghe được hết không bị chặn.

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Nên sử dụng template engine nào cho ứng dụng NodeJS (ExpressJS)?

      Có nhiều template engine để bạn lựa chọn, mình thì hay xài: handlerbars. nunjucks cũng khá cool.
      Bạn cũng lưu ý là nodejs framework bạn đang sử dụng có hỗ trợ template engine đó kg.

      posted in Node.JS
      tuanquynet
      tuanquynet
    • RE: Tối ưu hóa đoạn code thêm xóa sửa file json

      @Thuc-Nguyen-tan
      Theo mình mấy câu lệnh require nên để ở đầu file
      const path = require('path');
      var fs=require('fs');

      Những hàm API của node có thể wrap lại và chuyển qua đạng promise. Bạn có thể tìm hiểu Promisify của bluebird library

      return new Promise(function(res,rej){
        fs.readFile(realPath , 'utf8', function (err, data) {...}
      ...
      });
      

      có thể viết lại như sau:

      const readFile = Promise.promisify(fs.readFile, { context: fs });
      return readFile(realPath, 'utf8')
      	.then((data) => {
      		const ar = JSON.parse(data);
      		return ar.list;
      	});
      
      posted in Tutorials
      tuanquynet
      tuanquynet
    • RE: Authentication trên nodeJS thông qua JWT

      Đối với ứng dụng SPA (Single Page Application) bạn có thể lưu vào localStorage. Mỗi lần gởi request lên server, chúng ta chèn JWT vào header của request.

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Search Engine trong nodejs

      @Duong-Le-C
      2 Fulltext search engine phổ biến nhất hiện nay là:
      Elastic search: https://www.elastic.co/
      Solr: http://lucene.apache.org/solr/

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: [Hỏi] Làm sao để quản lí là tổ chức code hiệu quả ?

      Để tổ chức cấu trúc thư mục thì cũng tùy loại app. Theo mình thì có 2 trường phái:

      • 1 là tổ chức thư mục theo chức năng (feature)
      • 2 là theo kiểu của component (Model, View, Controller).

      Nếu bạn theo trường phái kiểu của component dùng MVC pattern.
      Thì thông thường nó sẽ là (có thể có thêm những thư mục khác:
      root
      --data
      ----mock-data
      --models
      --controllers
      --views
      -----components
      --lib

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Bảo mật đường dẫn và thông tin

      Một khi bạn đã publish API, thì bạn không thể ngăn cấm người khác gọi trực tiếp API của bạn. Với những API đòi hỏi chứng thực (authentication) thì đòi hỏi web client phải cung cấp token, cookie,... Đối với public API như đăng nhập (login), đăng ký (register) thì chúng ta có thể hạn chế số lần họ gọi API thông qua một kỹ thuật gọi là rate limit.

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Lỗi respond data

      @Công-Toàn-Lê
      Đoạn code bạn gởi bị lỗi cú pháp nhiều quá. Bạn nên gởi đoạn code chính xác để người khác còn giúp được.

      posted in ReactJS
      tuanquynet
      tuanquynet

    Latest posts made by tuanquynet

    • RE: Authentication trên nodeJS thông qua JWT

      @Long-Lê :

      1. Để chứng thực user đã login. Web Server App bắt buộc phải lưu xuống client hoặc lưu vào cookie hoặc lưu vào localStorage.
      2. Cả cookie và localStorage đều có cùng ở mức độ rủi ro như nhau. Nếu bạn để người khác lẽn vào máy bạn lúc đang mở browser thì đều bị mất account. Vì bản chất cookie cũng lưu trên browser. Đối với cookie-session, bạn có thể set expired date ngắn. Đối với token bạn cũng có thể làm như vậy.
        Bạn có thể tham khảo thêm ở bài viết này: https://auth0.com/blog/ten-things-you-should-know-about-tokens-and-cookies/#token-expiration
      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Authentication trên nodeJS thông qua JWT

      Đối với ứng dụng SPA (Single Page Application) bạn có thể lưu vào localStorage. Mỗi lần gởi request lên server, chúng ta chèn JWT vào header của request.

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Mã hóa trong Nodejs

      Bạn có thể sử dụng built-in module của node https://nodejs.org/api/crypto.html

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Lạm bàn một chút về single thread trong Javascript, có khác mấy ngôn ngữ khác không ?

      Single thread chắc chắn sẽ chạy chậm hơn multi thread. Nếu app viết tốt cho multi thread sẽ chạy nhanh hơn vì nó tận dụng được tất cả các Core của CPU. 1 task trên NodeJS có thể không chạy nhanh hơn php. Nhưng do cơ chế none-blocking I/O nên NodeJS sẽ không phải chờ cho một những tác đọc database, đọc file,... Cho nên nó sẽ tận dụng được tất cả thời gian cho CPU. Nó sẽ xử lý được nhiều request hơn. Có rất nhiều benchmark đã chứng minh đều đó bạn có thể google.

      vdu: http://www.hostingadvice.com/blog/comparing-node-js-vs-php-performance/

      Tóm lại ưu điểm chính của NodeJS là none-blocking I/O.

      Để tận dụng hết số CORE, chúng ta có thể start nhiều NodeJS app cùng lúc và sử dụng kỹ thuật load balancing.

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Tạo API cho database MongoDB

      Nếu bạn muốn thực hành viết API thì những kiến thực bạn cần phải nắm:
      Bước 1:

      • Giao thức HTTP
      • RESTFul API:
      • Tìm hiểu Mongodb
      • Tìm hiểu Mongoose framework
      • Tìm hiểu Expressjs & Restify
      • Viết simple CRUD API cho todo-list app.

      Bước 2:

      • Tìm hiểu thêm: Loopback hoặc SailsJS
      • Viết đầy đủ API cho app lớn.
      posted in Tutorials
      tuanquynet
      tuanquynet
    • RE: Tối ưu hóa đoạn code thêm xóa sửa file json

      @Thuc-Nguyen-tan
      Theo mình mấy câu lệnh require nên để ở đầu file
      const path = require('path');
      var fs=require('fs');

      Những hàm API của node có thể wrap lại và chuyển qua đạng promise. Bạn có thể tìm hiểu Promisify của bluebird library

      return new Promise(function(res,rej){
        fs.readFile(realPath , 'utf8', function (err, data) {...}
      ...
      });
      

      có thể viết lại như sau:

      const readFile = Promise.promisify(fs.readFile, { context: fs });
      return readFile(realPath, 'utf8')
      	.then((data) => {
      		const ar = JSON.parse(data);
      		return ar.list;
      	});
      
      posted in Tutorials
      tuanquynet
      tuanquynet
    • RE: Tự tạo và cài đặt SSL miễn phí cho Nginx, Apache với Letsencrypt!

      @Bùi-Đức-Cường : Lưu ý khi đăng ký nhiều subdomain, bạn cần phải config DNS cho tất cả các subdomain trỏ đến ip của server.

      posted in Node.JS
      tuanquynet
      tuanquynet
    • RE: Tự tạo và cài đặt SSL miễn phí cho Nginx, Apache với Letsencrypt!

      @softwareout : Bạn ping domain www.nexlesoft.com xem có trả về đúng ip của của server không? Nếu không ping được hoặc ip sai bạn cần config lại DNS trỏ www.nexlesoft.com về ip của server.

      posted in Node.JS
      tuanquynet
      tuanquynet
    • RE: MQTT với Node js

      Grab the first concept from here:
      https://dzone.com/refcardz/getting-started-with-mqtt

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet
    • RE: Hỏi về cách xác định vị trí client đang connect trên google map sử dụng server NodeJS

      @PhucHoangJS
      Bạn cần lấy tọa độ (geolocation) của client. Sau đó gởi lên server. Để lấy tọa độ của client bạn có thể dùng geolocation api. Tìm hiểu api này tại: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
      Nếu đang dùng google map bạn cũng có lấy tọa độ đó (lat, long)

      posted in Hỏi Đáp
      tuanquynet
      tuanquynet