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

Quốc Cường viết ngày 29/07/2016

Đâ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 1 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.

Nguồn ( https://nodejs.vn/topic/308/node-hero-b%C6%B0%E1%BB%9Bc-ch%C3%A2n-%C4%91%E1%BA%A7u-ti%C3%AAn )

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Quốc Cường

12 bài viết.
64 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
29 6
Một câu hỏi thường gặp của lập trình viên có kinh nhiệm với SQL mới chuyển sang Mongo là làm thế nào để có thể model được quan hệ 1 : nhiều. Có rất...
Quốc Cường viết hơn 2 năm trước
29 6
White
24 7
Phát triển ứng dụng trên local tương đối đơn giản. Bạn chỉ việc cd vào thư mục , gõ câu lệnh node app.js , ứng dụng đã hoạt động. Mọi thứ sẽ trở n...
Quốc Cường viết hơn 2 năm trước
24 7
White
21 4
REST là kiến trúc phần mềm phổ biến nhất hiện nay trên internet. Thực tế khi đọc bài viết về REST các bạn sẽ thấy nó hơi bị mơ hồ khó hiểu. REST ...
Quốc Cường viết hơn 2 năm trước
21 4
Bài viết liên quan
White
0 0
Lâu lâu không động vào nodejs không biết mấy ông tool tiếc này đi đâu về đâu rồi. Trước đây thì mình vẫn có thể dùng istanbul với mocha đơn giản th...
Hoàng Duy viết hơn 1 năm trước
0 0
White
1 0
Xử lý đồng bộ một mảng bằng Promise thay cho async.eachSeries Tựa Đang muốn chạy một hàm trong đó xử lý đồng bộ từng phần tử trong một mảng, do g...
Cuong Pham viết hơn 1 năm trước
1 0
Male avatar
5 0
Publications và Subscriptions Trong chương này bạn sẽ: Hiểu được cách thức hoạt động của publications và subscriptions. Học xem gói Autopubli...
Nguyen Quang Phuong viết gần 3 năm trước
5 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
12 bài viết.
64 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!