[Node Hero] Bước chân đầu tiên



  • Đây là loạt bài viết trên risingstack mình thấy khá hay . Các bạn có thể xem trực tiếp nó tại https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/
    Mình sẽ cố gắng dịch lần lượt loạt bài này để giúp mọi người làm quen với nodejs ^^! . Bắt đầu làm quen nào :D

    Trong bài đầu tiên này chúng ta cùng nhau tìm hiểu xem nodejs là cái gì, cài nó ra sao và làm thể nào để dùng nó .

    Node.js trong vỏ hạt dẻ

    Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

    Đây là giới thiệu về nodejs trên trang chủ của nó nodejs.org. Ở đây , Nodejs là một runtime (run-time system : phần mềm được thiết kế để chạy các chương trình máy tính với một hoặc nhiều ngôn ngữ xác định ). Nó được xây dựng trên nền V8 javascript engine - cỗ máy thực thi mã javascript của trình duyệt nổi tiếng Chrome. Đơn giản hơn, Nodejs giúp server của chúng ta có thể được viết bằng javascript.

    Sự thành công của nodejs đến từ việc sử dụng thư viện libuv- thư viện hỗ trợ đa nền tảng tập trung vào việc xử lý nhập/xuất bất đồng bộ (asynchronous I/O). Với lập trình viên thì Node.js chạy đơn luồng (single-threaded), thực tế bên trong nó thư viện libuv sẽ hỗ trợ việc xử lý đa luồng, sự kiện quản lý file, thực thi vòng lặp sự kiện (event loop).v.v

    Cài đặt Node.js

    Để cài đặt Node bạn hãy vào trang https://nodejs.org/en/download/ tìm phiên bản thích hợp với hệ điều hành của bạn và cài đặt như ứng dụng bình thường

    Nâng cao hơn 1 chút bạn có thể cài đặt nodejs qua thư viện nvm : https://github.com/creationix/nvm . Thư viện này giúp bạn cài đặt và quản lý nhiều phiên bản nodejs trên cùng 1 máy . Với người dùng window bạn có thể dùng nvm-windows : https://github.com/coreybutler/nvm-windows

    Nếu cài đặt nodejs qua nvm bạn có thể tương tác dễ dàng qua CLI. Từ khi tổ chức quản lý Nodejs được thành lập vào năm ngoài với sự tham gia của Linux Foudation, nodejs bắt đầu có kế hoạch ra mắt rõ ràng.Trong kế hoạch đó các bạn sẽ thấy có 2 phiên bản nodejs : LTS và current . Phiên bản LTS là phiên bản hướng đến độ ổn định cao , ít cập nhật các tính năng mới es6 , chỉ tập trung vào sửa lỗi bảo mật cũng như tối ưu hệ thống. Hiện nay phiên bản LTS dừng ở bản 4. Phiên bản current hay còn gọi là phiên bản experimental luôn được cập nhật liên tục tính năng mới - tốc độ nâng cấp kinh hồn luôn :|

    Cài đặt qua nvm

    Để cài đặt nodejs bạn dùng cú pháp

      nvm install < phiên bản cần cài>
    

    Để kiểm tra phiên bản node trong máy bạn có thể dùng một trong 2 cú pháp

     node --version
     node -v
    

    Nếu bạn thấy hiển thị thông tin phiên bản nodejs lên là ngon roài :D.
    Để chuyển đổi giữa các phiên bản nodejs cài trong máy bạn dùng cú pháp

     nvm use <phiên bản>
    

    Hello World

    Hãy bắt đầu nodejs với terminal nhé . Gõ node

    $ node
    >
    

    Ở đây bạn có thể code và chạy mà javascript :

    $ node
    > console.log('hello from Node.js')
    

    Gõ enter và

    hello from Node.js  
    undefined  
    

    Đây là câu lệnh in ra màn hình hello form Nodejs.js . Lệnh này không trả về giá trị gì nên bạn nhận được undefined ngay sau đó. Nghịch chán chưa :D. Bây giờ hãy bắt đầu tạo ứng dụng đầu tiên. Hãy mở 1 trình biên tập code bất kỳ Atom, Sublime hay Visual Code .v.v . Tạo 1 file là index.js với nội dung sau

    console.log('hello from Node.js')  
    

    Để chạy được cái file vừa rồi hãy gõ node <link tới file đó> . Bạn sẽ nhận được kết quả tương tự như ở trên khi tương tác với terminal

    Module hoá ứng dụng

    Bây giờ bạn đang có file index.js, hãy làm ứng dụng phức tạp hơn 1 chút nữa nhé. Thông thường khi code chúng ta thường chia nhỏ code của chúng ta ra nhiều file theo chức năng nhắm dễ đọc và dễ bảo trì. Nào hãy quay trở lại trình biên tập và tạo ra cấu trúc thư mục và file như sau:

    ├── app
    |   ├── calc.js
    |   └── index.js
    ├── index.js
    └── package.json
    

    Chú ý ở đây bạn không cần tạo file package.json, file này có thể được tạo ra tự động bằng câu lệnh. Với mỗi ứng nodejs đều chứa 1 file package.json chứa thông tin về ứng dụng và các thư viện phụ thuộc. Chúng ta sẽ tìm hiểu sâu hơn về NPM ở bài tiếp theo nhé.

    Để tạo file package.json, bạn vào terminal di chuyển đến thư mục ứng dụng và gõ npm init . Sau đó trả lời các câu hỏi để hệ thống tự build ra file package.json. Sau khi bạn trả lời xong bạn sẽ nhận được file có cấu trúc tương tư như sau:

    // package.json
    {
      "name": "@risingstack/node-hero",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
      },
      "author": "",
      "license": "ISC"
    }
    

    Ở đây bạn thêm lệnh start vào trong phần scripts để chạy ứng dụng nhé.

     "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node index.js"
      },
    

    Với 1 số hệ thống Paas - hiểu đơn giản là hệ thống hỗ trợ hosting server , nó sẽ tìm lệnh start ở trong file package.json để khởi động ứng dụng của bạn.
    Hoàn thiện ứng dụng thôi. Ứng dụng này sẽ tính tổng các số trong 1 mảng cho trước được đặt ở file app/index.js. Đầu tiên bạn mở file index.js ở ngoài thư mục app và copy đoạn lệnh sau vào đó.

    // index.js
    require('./app/index')  //lấy thông tin của file index trong thư mục app
    

    Với file index.js ở trong thư mục app bạn thêm dữ liệu mảng muốn cộng

    // app/index.js
    const calc = require('./calc') // lấy hàm tính toán
    
    const numbersToAdd = [  
      3,
      4,
      10,
      2
    ]
    
    const result = calc.sum(numbersToAdd)  // chạy hàm tính toán
    console.log(`The result is: ${result}`) 
    

    Ở đây ta còn thiếu phần logic để tính tổng nữa . Copy đoạn code sau và đặt vào app/calc.js

    // app/calc.js
    function sum (arr) {  
      return arr.reduce(function(a, b) { 
        return a + b
      }, 0)
    }
    
    module.exports.sum = sum  
    

    Ok bạn đã hoàn thiện ứng dụng đầu tiên, chạy thử nó nào . Vào terminal gõ npm start , bạn sẽ nhận được kết quả là The result is: 19. Bạn có thể thay đổi dữ liệu mảng trong file app/index.js để nhận được kết quả khác :D.


Log in to reply