Javascript hiện đang là ngôn ngữ lập trình phổ biến nhất hiện nay. Bạn có nghe đến Nodejs bao giờ chưa? Để học lập trình Nodejs, trước tiên bạn cần phải biết Javascript. Tại sao lại vậy chứ? Phía dưới bài viết, mình sẽ giải thích lý do.
Về phía backend, Nodejs đang nổi lên như một ngôi sao sáng. Với rất nhiều ưu điểm, nên nhiều công ty lớn cũng đã sử dụng Nodejs cho sản phẩm của mình. Điển hình như: Netflix, PayPal, eBay…
Khi mình mới bắt đầu học lập trình Nodejs, mình gặp rất nhiều khó khăn vì trên mạng có rất ít tài liệu hướng dẫn. Trong khi mình xuất thân từ lập trình Android, nên tư tưởng lập trình hướng sự kiện của nodejs đã khiến mình hoa mắt chóng mặt.
Do đó để giúp các bạn có thể nhanh chóng tiếp cận được với Nodejs, bài viết này mình đúc kết những kiến thức cơ bản nhất về Nodejs. Nodejs là gì? Tại sao lại chọn nodejs để xây dựng ứng dụng?
☛ Đọc ngay
Nội dung chính của bài viết
Khóa học lập trình Nodejs cơ bản gồm:
Khóa học này được thiết kế dành cho những bạn mới bắt đầu học lập trình. Do vậy, các kiến thức trong khóa học sẽ cực kỳ cơ bản, các bạn sẽ rất dễ để tiếp cận.
Sau khi hoàn thành khóa học này, mình tin rằng bạn có thể tự tin xây dựng cho mình một ứng dụng web hoành tránh rồi.
Chúng ta bắt đầu thôi!
#Nodejs là gì?
Nodejs là một runtime đa nền tảng dành cho server chạy trên V8 JavaScript engine (là javascript engine nổi tiếng của Chrome). V8 là trái tim của Nodejs để thực thi các mã Javascipt.
Javascript bản chất cũng chỉ một ngôn ngữ lập trình. Nó chạy tốt trên trình duyệt sử dụng V8 engine thì không có lý gì lại không ngon trên server cả.
Nodejs là runtime thực thi mã theo mô hình event-driven, non-blocking IO. Với nhiều lập trình viên, mô hình event-driven ban đầu có thể gây khó hiểu và tiếp cận. Tuy nhiên, mô hình này lại xử lý rất tốt với các ứng dụng web có nhiều kết nối theo thời gian thực.
Tuy nhiên NodeJs không phải là một thứ sinh ra để đánh đổ toàn bộ nền tảng web trước đó. Nodejs chỉ là một giải pháp thích hợp để giải quyết một nhu cầu nhất định.
Nếu bạn dùng NodeJs để xây dựng những ứng dụng nặng về tính toán như: Ứng dụng convert video, ứng dụng xử lý ảnh online…là bạn đã từ bỏ những đặc điểm tinh túy của nodejs rồi.
NodeJs chỉ thực sự mạnh ở các ứng dụng cần tốc độ nhanh, khả năng mở rộng. Vì Nodejs có khả năng xử lí một lượng rất lớn các request với tốc độ nhanh.
>> Có ích cho bạn: Thủ thuật tối ưu code Javascript
#NPM là gì?
Nói đến Nodejs, chúng ta không thể không nhắc đến npm. Npm(Node Package Manager) là một công cụ để tạo và quản lý thư viện cho node.js. Khi bạn cài đặt Nodejs thì đồng nghĩa Npm cũng đã được cài đặt.
Có một chút so sánh nhẹ, npm cũng giống như Gradle, Maven trong Android. Tất cả thư viện/modules sẽ được quản lý tập trung ở một nơi.
Các thư viện sẽ được đưa lên một máy chủ trung gian. Lúc này dự án của chúng ta sẽ không cần phải copy thủ công. Thay vào đó, npm sẽ tự động download từ máy chủ về dự án của bạn.
Đến thời điểm của bài viết, npm có khoảng 210,000 modules, tha hồ cho bạn lựa chọn cho dự án của mình.
#Những hiểu nhầm khi học lập trình Nodejs
- Thứ nhất, Nodejs không phải là một ngôn ngữ lập trình. Bản chất Nodejs là một JavaScript runtime
- Thứ hai, Nodejs không hỗ trợ đa luồng, nó là một máy chủ đơn luồng.
- Cuối cùng, chính vì Nodejs không phải là ngôn ngữ lập trình, nên để học được Nodejs thì bạn cần phải biết về Javascript, kỹ thuật lập trình, một số giao thức…
#Những lý do để học lập trình Nodejs
- Thứ nhất: Nodejs sử dụng Javascript là ngôn ngữ để xây dựng ứng dụng. Đây là một ngôn ngữ rất phổ biến cho lập trình front-end, ứng dụng client. Nếu bạn đã biết sử dụng javascript thì đây là một lợi thế cực lớn. Khi đó bạn sẽ chỉ cần sử dụng một ngôn ngữ lập trình cho từ client đến server.
- Thứ hai: Nodejs chạy đa nền tảng phía Server(Mac – Window – Linux đều được), sử dụng kiến trúc hướng sự kiện Event-driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
- Thứ ba: Cộng đồng Nodejs đang rất phát triển, thư viện miễn phí cực nhiều.
#Xây dựng ứng dụng đầu tiên với Nodejs
Ứng dụng đầu tiên này, chúng ta sẽ tạo một tiện ích nho nhỏ đó là xác định vị trí của bạn thông qua địa chỉ IP.
var http = require('http'); var options = { hostname: 'ipinfo.io', port: 80, path: '/json', method: 'GET' }; var req = http.request(options, function(res) { var body = ''; res.setEncoding('utf8'); res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { var json = JSON.parse(body); console.log('Your location: ' + json.city + ', ' + json.region); }); }); req.end();
Bạn copy đoạn code rồi paste vào một file mới, đặt tên là “index.js”. Sau đó, từ command line, bạn gõ lệnh sau:
node index.js
Kết quả thu được như sau:
Vì đoạn mã demo trên, mình không sử dụng bất kì thư viện 3rd party nào nên không cần phải có file package.json.
Phần tiếp theo mình sẽ giải thích cụ thể về package.json. Đừng vội vàng nhé, ngồi nhâm nhi tách cafe nào!
>> Có thể bạn cần: Cài đặt NodeJs trên Window, Ubuntu
#Quản lý thông tin modules trong dự án Nodejs
Về cơ bản, Nodejs sẽ không là gì cả nếu không có các modules. Có hai loại modules: Module built-in và module 3rd-party.
Có những modules cơ bản như: http, fs, os, path… sẽ được tích hợp sẵn trong Nodejs khi bạn cài đặt.
Còn những modules kiểu 3rd-party thì khi nào bạn cần thì sẽ gọi. Tất cả những module 3rd-party sẽ được quản lý thông qua file package.json( File này có vai trò giống như build.gradle trong Android vậy).
Đây là một ví dụ về package.json
{ "name": "node-js-sample", "version": "0.2.0", "description": "A sample Node.js app using Express 4", "main": "index.js", "scripts": { "start": "node index.js" }, "dependencies": { "express": "^4.13.3" }, "engines": { "node": "4.0.0" }, "repository": { "type": "git", "url": "https://github.com/heroku/node-js-sample" }, "keywords": [ "node", "heroku", "express" ], "author": "Mark Pundsack", "contributors": [ "Zeke Sikelianos <[email protected]> (http://zeke.sikelianos.com)" ], "license": "MIT" }
Như bạn thấy trong file package.json này, dự án sử dụng một module 3rd-party là: ” express”. Để cài đặt tất cả các module được khai báo trong package.json, bạn đơn giản gõ lệnh sau:
npm install
Nếu bạn tạo mới dự án từ ban đầu, bạn có thể tạo package.json bằng lệnh:
npm init
Sau đó nhập thông tin như yêu cầu trong command line. Như bên dưới:
$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sane defaults. Seenpm help json
for definitive documentation on these fields and exactly what they do. Usenpm install <pkg> --save
afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. name: (twenty) version: (0.0.1) description: Locates the city/region of a given URL/IP address entry point: (index.js) test command: git repository: keywords: license: (MIT) About to write to /Users/scott/projects/twenty/package.json: { "name": "twenty", "version": "0.0.1", "description": "Locates the city/region of a given URL/IP address", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Scott Robinson <[email protected]> (http://stackabuse.com)", "license": "MIT" } Is this ok? (yes) yes
#Tạm kết
Như vậy, mình đã chia sẻ những kiến cơ bản nhất về Nodejs. Mình biết rằng, khi mới bắt đầu nhập môn lập trình Nodejs, bạn sẽ gặp khó khăn nhất định.
Nhưng đừng hoang mang, mình sẽ cùng đồng hành với bạn qua các bài viết trên VNTALKING.
Nhớ đón đọc các bài viết tiếp theo của mình về Nodejs nhé!
Em cảm ơn Bro. Sơn Dương rất nhiều.
Sơn Dương cũng cám ơn Thiện đã ủng hộ nhé 😀
tks b nhiều nha