Nhìn lại lịch sử của Node.js từ năm 2009 đến nay
Tin hay không thì tùy, Node.js chỉ mới 9 tuổi.
Để so sánh, JavaScript đã 23 tuổi và web như chúng ta biết (sau khi Mosaic ra đời) là 25 tuổi.
9 năm là một khoảng thời gian ít ỏi đối với một công nghệ, nhưng Node.js dường như đã tồn tại mãi mãi.
Tôi đã rất vui khi được làm việc với Node từ những ngày đầu khi nó chỉ mới 2 tuổi, và mặc dù có rất ít thông tin, bạn có thể cảm thấy đó là một điều rất lớn.
Trong bài đăng này, tôi muốn vẽ bức tranh lớn của Node trong lịch sử của nó, để đưa mọi thứ vào góc nhìn.
Một chút lịch sử
JavaScript là một ngôn ngữ lập trình được tạo ra tại Netscape như một công cụ viết kịch bản để thao tác các trang web bên trong trình duyệt của họ,Netscape Navigator.
Một phần của mô hình kinh doanh của Netscape là bán Máy chủ Web, bao gồm một môi trường được gọi làNetscape LiveWire, có thể tạo các trang động bằng JavaScript phía máy chủ. Vì vậy, ý tưởng về JavaScript phía máy chủ không được Node.js giới thiệu, nhưng nó cũng cũ giống như JavaScript - nhưng vào thời điểm đó nó đã không thành công.
Một yếu tố quan trọng dẫn đến sự nổi lên của Node.js là thời gian. JavaScript từ vài năm trước đã bắt đầu được coi là một ngôn ngữ nghiêm túc, nhờ các ứng dụng “Web 2.0” đã cho thế giới thấy trải nghiệm hiện đại trên web có thể như thế nào (hãy nghĩ đến Google Maps hoặc GMail).
Thanh hiệu suất của các công cụ JavaScript đã tăng lên đáng kể nhờ cuộc chiến cạnh tranh trình duyệt vẫn đang diễn ra mạnh mẽ. Các nhóm phát triển đằng sau mỗi trình duyệt chính làm việc chăm chỉ hàng ngày để mang lại cho chúng tôi hiệu suất tốt hơn, đó là một chiến thắng to lớn cho JavaScript với tư cách là một nền tảng. V8, động cơ mà Node.js sử dụng dưới mui xe, là một trong số đó và đặc biệt là động cơ Chrome JS.
Nhưng tất nhiên, Node.js không phổ biến chỉ vì may mắn hay thời điểm thuần túy. Nó giới thiệu nhiều tư duy đổi mới về cách lập trình bằng JavaScript trên máy chủ.
2009
- Node.js ra đời
- Dạng đầu tiên củanpmđược tạo ra
2010
2011
- npm truy cập 1,0
- Các công ty lớn bắt đầu áp dụng Node: LinkedIn, UberHapiđược sinh ra
2012
- Việc nhận con nuôi tiếp tục rất nhanh chóng
2013
- Nền tảng blog lớn đầu tiên sử dụng Node: Ghost
- Koađược sinh ra
2014
- Ngã ba lớn:io.jslà một nhánh chính của Node.js, với mục tiêu giới thiệu hỗ trợ ES6 và di chuyển nhanh hơn
2015
- CácNode.js Foundationđược sinh ra
- IO.js được hợp nhất trở lại Node.js
- npm giới thiệu các mô-đun riêng tư
- Node 4 (no 1, 2, 3 versions were previously released)
2016
- Cácsự cố bàn phím trái
- Sợiđược sinh ra
- Node 6
2017
- npm tập trung nhiều hơn vào bảo mật
- Nút 8-9
- HTTP/2
- V8giới thiệu Node trong bộ thử nghiệm của nó, chính thức biến Node trở thành mục tiêu cho công cụ JS, ngoài Chrome
- 3 tỷ lượt tải xuống npm mỗi tuần
2018
- Nút 10 - 11
- Mô-đun EShỗ trợ thử nghiệm .mjs
2019
- Nút 12 - 13
- Làm việc trênDenobắt đầu chuyển JS phía máy chủ vào thập kỷ tiếp theo với hỗ trợ JavaScript hiện đại
2020
- Nút 14 - 15
- GitHub (thuộc sở hữu của Microsoft) mua lại NPM
Tải xuống miễn phí của tôiSổ tay Node.js
Các hướng dẫn nút khác:
- Giới thiệu về trình quản lý gói npm
- Giới thiệu về Node.js
- Yêu cầu HTTP bằng Axios
- Nơi lưu trữ ứng dụng Node.js
- Tương tác với API Google Analytics bằng Node.js
- Trình chạy gói nút npx
- Hướng dẫn package.json
- Npm cài đặt các gói ở đâu?
- Cách cập nhật Node.js
- Cách sử dụng hoặc thực thi một gói được cài đặt bằng npm
- Tệp package-lock.json
- Phiên bản ngữ nghĩa sử dụng npm
- Bạn có nên cam kết thư mục node_modules cho Git không?
- Cập nhật tất cả các phụ thuộc Node lên phiên bản mới nhất của chúng
- Phân tích cú pháp JSON với Node.js
- Tìm phiên bản đã cài đặt của gói npm
- Luồng Node.js
- Cài đặt phiên bản cũ hơn của gói npm
- Lấy thư mục hiện tại trong Node
- Cách đăng nhập một đối tượng trong Node
- Thể hiện chức năng từ tệp Node bằng cách sử dụng xuất
- Sự khác biệt giữa Node và Browser
- Thực hiện yêu cầu HTTP POST bằng Node
- Nhận dữ liệu nội dung yêu cầu HTTP bằng Node
- Bộ đệm nút
- Sơ lược về lịch sử Node.js
- Cách cài đặt Node.js
- Bạn cần biết bao nhiêu JavaScript để sử dụng Node?
- Cách sử dụng Node.js REPL
- Nút, chấp nhận các đối số từ dòng lệnh
- Xuất ra dòng lệnh bằng Node
- Chấp nhận đầu vào từ dòng lệnh trong Node
- Gỡ cài đặt gói npm với `` npm gỡ cài đặt ''
- gói npm toàn cầu hoặc cục bộ
- npm phụ thuộc và devDependencies
- Vòng lặp sự kiện Node.js
- Hiểu process.nextTick ()
- Hiểu setIm Instant ()
- Bộ phát sự kiện nút
- Xây dựng một máy chủ HTTP
- Thực hiện các yêu cầu HTTP với Node
- Mô-đun Node fs
- Yêu cầu HTTP trong Node bằng Axios
- Đọc tệp bằng Node
- Đường dẫn tệp nút
- Viết tệp bằng Node
- Số liệu thống kê về tệp nút
- Làm việc với bộ mô tả tệp trong Node
- Làm việc với các thư mục trong Node
- Mô-đun đường dẫn nút
- Mô-đun Node http
- Sử dụng WebSockets với Node.js
- Những điều cơ bản về cách làm việc với MySQL và Node
- Xử lý lỗi trong Node.js
- Hướng dẫn Pug
- Cách đọc các biến môi trường từ Node.js
- Cách thoát khỏi chương trình Node.js
- Mô-đun hệ điều hành Node
- Mô-đun sự kiện Node
- Nút, sự khác biệt giữa phát triển và sản xuất
- Cách kiểm tra xem tệp có tồn tại trong Node.js hay không
- Cách tạo tệp trống trong Node.js
- Cách xóa tệp bằng Node.js
- Cách lấy ngày cập nhật cuối cùng của tệp bằng Node.js
- Cách xác định một ngày có phải là hôm nay trong JavaScript hay không
- Cách ghi một đối tượng JSON vào tệp trong Node.js
- Tại sao bạn nên sử dụng Node.js trong dự án tiếp theo của mình?
- Chạy một máy chủ web từ bất kỳ thư mục nào
- Cách sử dụng MongoDB với Node.js
- Sử dụng Công cụ dành cho nhà phát triển của Chrome để gỡ lỗi ứng dụng Node.js
- Pnpm là gì?
- Danh sách tùy chọn Node.js Runtime v8
- Cách khắc phục lỗi "Thiếu quyền ghi" khi sử dụng npm
- Cách bật Mô-đun ES trong Node.js
- Cách sinh ra một quy trình con với Node.js
- Cách lấy cả nội dung được phân tích cú pháp và nội dung thô trong Express
- Cách xử lý tải lên tệp trong Node.js
- Sự phụ thuộc ngang hàng trong một mô-đun Node là gì?
- Cách ghi tệp CSV với Node.js
- Cách đọc tệp CSV với Node.js
- Mô-đun lõi Node
- Tăng số lượng nhiều thư mục cùng một lúc bằng Node.js
- Cách in canvas thành URL dữ liệu
- Cách tạo và lưu hình ảnh với Node.js và Canvas
- Cách tải xuống hình ảnh bằng Node.js
- Cách đổi tên hàng loạt tệp trong Node.js
- Cách lấy tên của tất cả các tệp trong một thư mục trong Node
- Cách sử dụng các lời hứa và chờ đợi với các hàm dựa trên cuộc gọi lại của Node.js
- Cách kiểm tra một gói npm cục bộ
- Cách kiểm tra phiên bản Node.js hiện tại khi chạy
- Cách sử dụng Sequelize để tương tác với PostgreSQL
- Cung cấp trang HTML bằng Node.js
- Cách giải quyết lỗi `use.pump không phải là hàm` trong Node.js