Navigation

    Vietnam

    Nodejs.vn

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

    NHAN NGUYEN

    @nguyenquynhan

     Có kinh nghiệm xây dựng project thực tế bằng nodejs, web api, realtime
     Đã làm việc với AngularJs
     Am hiểu sâu về MVC
     Làm việc tốt với MySQL, Mongodb, mysql
     Đã tưng deploy nodejs với Ngnix trên Linux

    20
    Reputation
    43
    Posts
    981
    Profile views
    2
    Followers
    2
    Following
    Joined Last Online
    Website nqnhan.wordpress.com Location HCM Age 31

    nguyenquynhan Follow

    Best posts made by nguyenquynhan

    • RE: Ý nghĩa của next trong expressjs

      Trong expressj, next() dùng để nhảy tới rout tiếp theo mà match với url khi clien request.
      Ví dụ trong đoạn code bên dưới:

      • nếu url: /users
        • rout * thực hiện visitCounter ++;
        • chạy tiếp vào rout /users
      • tương tự url: /products
        • vào rout * thực hiện visitCounter ++;
        • chạy tiếp vào rout /products
      app.all('*', function(req, res, next){
        visitCounter ++;
        next();
      });
      
      app.get('/users', function() {
        //...
      });
      
      app.get('/products', function() {
        //...
      });
      
      posted in ExpressJS/Conect.IO
      nguyenquynhan
      nguyenquynhan
    • Có nên làm nodejs với typescript không?

      Chào các bạn, mình đã làm nodejs một thời gian có chút kinh nghiệm.
      Gần hơn một năm trở lại đây thì typescript được nhiều người chào đón
      Mình đã làm typescript với ng2 nhưng thời gian build là khá lâu.
      Vậy có nên phát triển nodejs với typescript ko? Bạn nào đã từng làm qua typescript + nodejs xin chia sẽ ít kinh nghiệm.

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • Debug nodejs bằng chrome:

      Hiện nay có nhiều tool debug nhưng mình thấy thằng này debug là ok nhất, nó y như những gì mình debug javascript trên browser

      • step 1: cài đặt node-inspector
        • npm install -g node-inspector
      • step 2: vào thư mục project của bạn và chạy lệnh:
        • node-debug app.js (app.js là file start app của bạn)
      • step 3: node-inspector sẽ tự động mở chrome lên và bạn debug bằng develop tool của chrome
        alt text
      • bạn có thể tìm hiểu sâu hơn tại https://github.com/node-inspector/node-inspector

      Chúc các bạn thành công!

      posted in Node.JS
      nguyenquynhan
      nguyenquynhan
    • RE: Hỏi về resize hình trong nodejs

      Dùng free API đi bạn, hiện mình đang dùng thằng này thấy khá ổn.
      https://rsz.io/

      posted in Node.JS
      nguyenquynhan
      nguyenquynhan
    • RE: Hỏi về load các package npm

      Đó là việc phải làm, clone project mới bạn phải install lại là điều tất yếu, các example trên github sau khi tải về bạn cũng phải install, mục tiêu là khi lưu trữ lên github hoặc SVN sẽ giảm dụng lượng lưu trữ, mã nguồn copy, deploy lên server nhanh hơn.
      Khuyên bạn nên dùng lệnh: npm install packageName --save để thông tin package được lưu vào package.json trong project của bạn

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Hỏi về chạy nhiều ứng dụng nodejs trên cùng một VPS

      Bạn nên dùng nginx:

      • cache rất tốt, website nhanh hơn nhiều
      • load banlance: sử dụng nginx mà ko làm load balance thì phí
      • professional: run bằng node khi dev, còn đưa lên production thì ko ai chạy bằng node hết. Cũng giống nhiw .net đưa lên server thì cần iss để control
      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: [Git] Cần hỏi về workflow khi làm việc với shared branch

      Quan trọng nhất là tách branch ra từ branch chung rồi làm, cuối ngày rebase và merge vào branch chung và đẩy code lên
      . Ví vụ branch chung là: user-management
      . Sau khi lấy code về bạn cần tách ra một branch mới từ branch này:
      git checkout -b my-user-management
      . Work và commit lên trên branch này, có thể push branch này lên server (tùy bạn)
      . Trước khi merge với branch chung cần:
      git checkout user-management
      git pull origin user-management
      git checkout my-user-management
      git rebase user-management (resolve conflict ở bước này, sau khi resolve thì kiểm tra lại code và tính năng của project), sau đó commit những thay đổi nếu có lên
      git checkout user-management
      git merge my-user-management
      git push origin user-management (cuối cùng là push code lên branch chung)
      git checkout my-user-management (trở về nhánh của mình để code tiếp)

      Hy vọng có thể giúp bạn

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Set giá trị language trong function Find mongose

      Chào bạn,
      NodeJS chạy bất đồng bộ nên bạn để ngoài callback sẽ ko nhận được kết quả vì dòng lệnh console.log(_language); sẽ thực thi trước khi hàm .find thực thi xong. Có 3 cách:

      1. Bạn phải luôn nhận kq trong callback (cách bạn đang làm)
      2. Hoặc sử dụng thư viện async https://github.com/caolan/async
      3. Hoặc sử dụng ES6 syntax, cách này thì gần hơn với mong muốn của bạn. Support từ nodejs 6.9.x trở lên (ko nhớ rõ)
      var _language = null;
      let docs = yield LanguageData.find({'language_default': 1});
      _language  = docs[k]['language_code'];
      
      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Tìm source code backend NodeJS mẫu

      Bạn bắt đầu từ templete này thì khá đầy đủ, có support cả bootstrap
      https://github.com/sahat/hackathon-starter

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Fix lỗi bất đồng bộ trong việc insert vs update mongodb

      Cách trình bày code và post code lên topic hơi xấu, bạn cần format code cho pretty hơn, dọc code của bạn mình không hiểu cho lắm, nhưng mình thấy có lỗi sai cơ bản là hàm addCustomer có parameter là callback nhưng bạn lại không gọi lại hàm callback.

      addCustomer: function(customer, service, callback) {
          CustomerModel.getlist(function(err, customers) {
              customer.potentialService = service;
              if (!err) {
                  if (customers.length > 0) {
                      // Update
                      CustomerModel.update(customer, callback);
                  } else {
                      CustomerModel.insert(customer, callback);
                  }
              }else{
                  callback(err);
              }
          }, {
              query: {
                  email: customer.email,
                  potentialService: service
              }
          });
      }
      
      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan

    Latest posts made by nguyenquynhan

    • Số thông báo là 2 những khi mở ra thì ko có thông báo nào

      Thấy lỗi nho nhỏ của site nên góp ý thôi nhé.
      Số thông báo là 2 những khi mở ra thì ko có thông báo nào như hình0_1513045411384_nodejs.vn.png

      posted in Feedback - Góp ý
      nguyenquynhan
      nguyenquynhan
    • RE: Gặp vấn đề về crawl data :)))

      Đã có solution chưa bạn @Hải-Nguyễn215 , nếu có thì share bà con với nhé, mình cũng gặp issue tương tự bạn 😉

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • Có nên làm nodejs với typescript không?

      Chào các bạn, mình đã làm nodejs một thời gian có chút kinh nghiệm.
      Gần hơn một năm trở lại đây thì typescript được nhiều người chào đón
      Mình đã làm typescript với ng2 nhưng thời gian build là khá lâu.
      Vậy có nên phát triển nodejs với typescript ko? Bạn nào đã từng làm qua typescript + nodejs xin chia sẽ ít kinh nghiệm.

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Nghiên cứu sâu vào Nodejs

      Nên nghiên cứu một số opensource nào đó, không những giúp bạn hiểu sâu hơn về nodejs và sau này muốn build một sản phẩm thì từ opensource sẽ nhanh hơn nhiều. Có thể NodeBB mà diễn này này đang sử dụng

      posted in Node.JS
      nguyenquynhan
      nguyenquynhan
    • RE: Hỏi về bất đồng bộ trong nodejs

      Bạn dùng Promiss.All sẽ resolve được trường hợp này

      var p1 = new Promise((resolve, reject) => { 
        setTimeout(resolve, 1000, "one"); 
      }); 
      var p2 = new Promise((resolve, reject) => { 
        setTimeout(resolve, 2000, "two"); 
      });
      var p3 = new Promise((resolve, reject) => {
        setTimeout(resolve, 3000, "three");
      });
      
      Promise.all([p1, p2, p3]).then(function(values) => { 
        console.log(values); //Kết quả: values = ["one", "two", "three"]
        res.send(values) // Xử lý Response ở đây
      }, function(error) {
        console.log(error);
        res.send(error);
      });
      

      Tham khảo thêm Promiss.All tại đây nhé
      https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: [Git] Cần hỏi về workflow khi làm việc với shared branch

      Quan trọng nhất là tách branch ra từ branch chung rồi làm, cuối ngày rebase và merge vào branch chung và đẩy code lên
      . Ví vụ branch chung là: user-management
      . Sau khi lấy code về bạn cần tách ra một branch mới từ branch này:
      git checkout -b my-user-management
      . Work và commit lên trên branch này, có thể push branch này lên server (tùy bạn)
      . Trước khi merge với branch chung cần:
      git checkout user-management
      git pull origin user-management
      git checkout my-user-management
      git rebase user-management (resolve conflict ở bước này, sau khi resolve thì kiểm tra lại code và tính năng của project), sau đó commit những thay đổi nếu có lên
      git checkout user-management
      git merge my-user-management
      git push origin user-management (cuối cùng là push code lên branch chung)
      git checkout my-user-management (trở về nhánh của mình để code tiếp)

      Hy vọng có thể giúp bạn

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Build thư viện cho nodejs

      Bạn muốn truy vấn nhanh thì bạn có thể sử dụng NodeJS-ORM, hiện tại support:

      • MySQL & MariaDB
      • PostgreSQL
      • Amazon Redshift
      • SQLite
      • MongoDB (beta, missing aggregation for now)

      https://github.com/dresende/node-orm2

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Hỏi quy trình phát triển Back-end và deploy lên dev vps, product vps

      Từ khóa ở đây là CI for Deploy NodeJS
      Bạn có thể sử dụng jenkins để làm nhé hoặc bạn có thể follow link dưới
      https://codeforgeek.com/2016/04/continuous-integration-deployment-jenkins-node-js/

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Phát triển Docker cho Nodejs

      Chào bạn
      Theo mình tạo docker trên một server chỉ tối ưu thời gian downtime, không biết còn tối ưu thêm gì nữa không (chưa nghiên cứu thêm) 🙂 . Nếu muốn lượng user lớn thì tốt nhất là dùng nhiều server thay vì docker

      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan
    • RE: Set giá trị language trong function Find mongose

      Chào bạn,
      NodeJS chạy bất đồng bộ nên bạn để ngoài callback sẽ ko nhận được kết quả vì dòng lệnh console.log(_language); sẽ thực thi trước khi hàm .find thực thi xong. Có 3 cách:

      1. Bạn phải luôn nhận kq trong callback (cách bạn đang làm)
      2. Hoặc sử dụng thư viện async https://github.com/caolan/async
      3. Hoặc sử dụng ES6 syntax, cách này thì gần hơn với mong muốn của bạn. Support từ nodejs 6.9.x trở lên (ko nhớ rõ)
      var _language = null;
      let docs = yield LanguageData.find({'language_default': 1});
      _language  = docs[k]['language_code'];
      
      posted in Hỏi Đáp
      nguyenquynhan
      nguyenquynhan