Hướng dẫn what is javascript server - máy chủ javascript là gì

Node.js – nói một cách đơn giản – là server-side JavaScript (JavaScript phía máy chủ). Nó đã nhận được rất nhiều tiếng vang trong những ngày này. Nếu bạn đã nghe nói về nó hoặc bạn muốn tìm hiểu và bắt tay vào thực hiện – thì bài đăng này là dành cho bạn.server-side JavaScript (JavaScript phía máy chủ). Nó đã nhận được rất nhiều tiếng vang trong những ngày này. Nếu bạn đã nghe nói về nó hoặc bạn muốn tìm hiểu và bắt tay vào thực hiện – thì bài đăng này là dành cho bạn.

Vậy chính xác thì nhu cầu sử dụng JavaScript trong máy chủ là gì? Để làm rõ khái niệm về Node.js, tôi muốn so sánh nó với các ngôn ngữ phía máy chủ thông thường như PHP. Node.js sử dụng quy trình thực thi máy chủ dựa trên sự kiện thay vì thực thi đa luồng trong PHP.quy trình thực thi máy chủ dựa trên sự kiện thay vì thực thi đa luồng trong PHP.

Để giải thích thêm, chúng ta sẽ nói về ý tưởng Node.js là gì cùng với một số gợi ý và mẹo cài đặt của nhà cung cấp dịch vụ lưu trữ . Cần phải có kiến ​​thức trình độ trung cấp về JavaScript, jQuery và Ajax, nhưng chúng tôi cũng sẽ cung cấp các ví dụ để bạn hiểu toàn bộ vấn đề dễ dàng hơn và thậm chí có thể làm việc trên đó, vì vậy hãy cùng tìm hiểu thêm về Node.js!Node.js là gì cùng với một số gợi ý và mẹo cài đặt của nhà cung cấp dịch vụ lưu trữ . Cần phải có kiến ​​thức trình độ trung cấp về JavaScript, jQuery và Ajax, nhưng chúng tôi cũng sẽ cung cấp các ví dụ để bạn hiểu toàn bộ vấn đề dễ dàng hơn và thậm chí có thể làm việc trên đó, vì vậy hãy cùng tìm hiểu thêm về Node.js!

  • Hãy xem xét một trường hợp:
  • Bắt đầu với Node.js
  • JavaScript chạy trên máy chủ như thế nào?
  • Cài đặt Node.js
  • Kiểm tra cài đặt Node
  • Tạo máy chủ HTTP
  • Tạo máy chủ tệp tĩnh đơn giản

Hãy xem xét một trường hợp:

Bắt đầu với Node.jsmã hóa nó trong một tệp đơn giản và mã hóa nó thành một tập lệnh khác, sau đó thực thi nó theo cách tiếp cận đa luồng.

JavaScript chạy trên máy chủ như thế nào?nhưng việc thực thi tạm dừng một lúc tại điểm mà máy chủ web chậm được truy cập. Phương pháp thứ hai được tối ưu hóa hơn trong trường hợp hiệu suất nhưng khó viết mã và nó có chi phí quản lý đa luồng. Trường hợp tương tự đối với hầu hết các ngôn ngữ lập trình web khác với JavaScript phía máy chủ, tức là Node.js.

Cài đặt Node.jsĐể hiểu Node.js, bạn phải ghi nhớ lập trình dựa trên sự kiện của JavaScript trong trình duyệt . Chúng tôi sử dụng cùng một công nghệ ở đây. Thay vì sử dụng một chuỗi riêng biệt, một chức năng được đính kèm với sự kiện kết thúc của “truy cập máy chủ web chậm” được đề cập ở trên, do đó bạn có được đầy đủ chức năng trong tùy chọn thứ hai được tối ưu hóa được đề cập ở trên mà không có bất kỳ chi phí đa luồng nào.

Bắt đầu với Node.js

JavaScript chạy trên máy chủ như thế nào?. Tại sao chúng ta không thể sử dụng chức năng dựa trên sự kiện của JavaScript trong máy khách cho máy chủ? Suy nghĩ này có thể đã dẫn đến sự phát triển của Node.js.

Hướng dẫn what is javascript server - máy chủ javascript là gì

Cài đặt Node.jsđó là các hàm không đồng bộ dựa trên sự kiện . Nó sử dụng một vòng lặp sự kiện thay vì chờ đợi các hoạt động I / O (truy cập dịch vụ web bên ngoài, truy cập phần cứng).

Kiểm tra cài đặt Nodesử dụng sức mạnh xử lý của nó khi máy chủ đang chờ bất kỳ hoạt động nào khác. Điều này làm cho Node.js có thể mở rộng cho hàng triệu kết nối đồng thời.

JavaScript chạy trên máy chủ như thế nào?

Cài đặt Node.jsmôi trường v8 – nó là một máy ảo hoặc một công cụ JavaScript chạy mã JavaScript, vì vậy để lưu trữ, bạn không thể sử dụng các máy chủ web thông thường. Bạn sẽ cần những cái có môi trường v8.

Kiểm tra cài đặt Node

  1. Tạo máy chủ HTTP
  2. Tạo máy chủ tệp tĩnh đơn giản
  3. Hãy xem xét một trang web mà bạn cần tải nội dung động từ một máy chủ web khác chậm. Trong PHP, bạn có thể làm điều đó theo 2 cách – mã hóa nó trong một tệp đơn giản và mã hóa nó thành một tập lệnh khác, sau đó thực thi nó theo cách tiếp cận đa luồng.
  4. Trong phương pháp đầu tiên, mặc dù mã đơn giản nhưng việc thực thi tạm dừng một lúc tại điểm mà máy chủ web chậm được truy cập. Phương pháp thứ hai được tối ưu hóa hơn trong trường hợp hiệu suất nhưng khó viết mã và nó có chi phí quản lý đa luồng. Trường hợp tương tự đối với hầu hết các ngôn ngữ lập trình web khác với JavaScript phía máy chủ, tức là Node.js.

Cài đặt Node.js

Kiểm tra cài đặt Nodehoạt động hoàn hảo trên các hệ điều hành Linux, Macintosh và Solaris . Trên Windows, bạn có thể cài đặt nó bằng cách sử dụng lớp mô phỏng Cygwin . Không có bản dựng nào trong Windows đạt yêu cầu nhưng vẫn có thể có thứ gì đó đang chạy.

Tạo máy chủ HTTP

Tạo máy chủ tệp tĩnh đơn giảnmake để xây dựng và cài đặt node.js (thực hiện phần sau trên dòng lệnh). Git là bắt buộc

git clone --depth 1 git://github.com/joyent/node.git
cd node
git checkout v0.4.11
export JOBS=2
mkdir ~/local
./configure --prefix=$HOME/local/node
make
make install
echo 'export PATH=$HOME/local/node/bin:$PATH' >> ~/.profile
echo 'export NODE_PATH=$HOME/local/node:$HOME/local/node/lib/node_modules' >> ~/.profile
source ~/.profile

Hãy xem xét một trang web mà bạn cần tải nội dung động từ một máy chủ web khác chậm. Trong PHP, bạn có thể làm điều đó theo 2 cách – mã hóa nó trong một tệp đơn giản và mã hóa nó thành một tập lệnh khác, sau đó thực thi nó theo cách tiếp cận đa luồng.

Trong phương pháp đầu tiên, mặc dù mã đơn giản nhưng việc thực thi tạm dừng một lúc tại điểm mà máy chủ web chậm được truy cập. Phương pháp thứ hai được tối ưu hóa hơn trong trường hợp hiệu suất nhưng khó viết mã và nó có chi phí quản lý đa luồng. Trường hợp tương tự đối với hầu hết các ngôn ngữ lập trình web khác với JavaScript phía máy chủ, tức là Node.js.

Kiểm tra cài đặt Node

Tạo máy chủ HTTP

var sys = require("sys");
sys.puts("Hello World");

Tạo máy chủ tệp tĩnh đơn giản

Hãy xem xét một trang web mà bạn cần tải nội dung động từ một máy chủ web khác chậm. Trong PHP, bạn có thể làm điều đó theo 2 cách – mã hóa nó trong một tệp đơn giản và mã hóa nó thành một tập lệnh khác, sau đó thực thi nó theo cách tiếp cận đa luồng.sys lớp thành một biến sys. Sau đó, nó sử dụng sys để thực hiện các tác vụ trên bảng điều khiển. Các sys.puts là một lệnh tương tự như cout trong C ++, vì vậy để chạy tập lệnh ở trên, hãy đi tới dấu nhắc lệnh và chạy nó bằng lệnh dưới đây:

node test.js

Trong phương pháp đầu tiên, mặc dù mã đơn giản nhưng việc thực thi tạm dừng một lúc tại điểm mà máy chủ web chậm được truy cập. Phương pháp thứ hai được tối ưu hóa hơn trong trường hợp hiệu suất nhưng khó viết mã và nó có chi phí quản lý đa luồng. Trường hợp tương tự đối với hầu hết các ngôn ngữ lập trình web khác với JavaScript phía máy chủ, tức là Node.js.

Tạo máy chủ HTTP

Bây giờ đã đến lúc tạo “Hello World” thông qua máy chủ web bằng Node.js. Đây là những gì chúng tôi sẽ làm – chúng tôi tạo một máy chủ xuất “Hello World” đến localhost trên cổng 8080 bất kể URL là gì, cho bạn biết sự kiện là gì.tạo một máy chủ xuất “Hello World” đến localhost trên cổng 8080 bất kể URL là gì, cho bạn biết sự kiện là gì.

Các mã:

var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){
	sys.puts("I got kicked");
	response.writeHeader(200, {"Content-Type": "text/plain"});
	response.write("Hello World");
	response.end();
}).listen(8080);
sys.puts("Server Running on 8080");	

Giải thích mã:

Phần thú vị nhất trong Node.js là lập trình dựa trên sự kiện của nó. Để tạo một máy chủ HTTP, chúng tôi cần HTTP library vì vậy chúng tôi tiếp tục và thêm nó bằng cách sử dụng my_http. Chúng tôi tạo máy chủ bằng chức năng:HTTP library vì vậy chúng tôi tiếp tục và thêm nó bằng cách sử dụng my_http. Chúng tôi tạo máy chủ bằng chức năng:

my_http.createServer(function(request,response){}).listen(8080);

Hàm được cung cấp làm đối số đầu tiên được thực thi mỗi khi một sự kiện được kích hoạt trong cổng 8080 , do đó, bản thân hàm đề xuất nút lắng nghe một sự kiện trong cổng 8080. Để phát hiện điều này, tôi đã thêm thông báo “ Tôi bị đá ” sẽ hiển thị trên màn hình bảng điều khiển bất cứ khi nào nhận được yêu cầu.mỗi khi một sự kiện được kích hoạt trong cổng 8080 , do đó, bản thân hàm đề xuất nút lắng nghe một sự kiện trong cổng 8080. Để phát hiện điều này, tôi đã thêm thông báo “ Tôi bị đá ” sẽ hiển thị trên màn hình bảng điều khiển bất cứ khi nào nhận được yêu cầu.

Đối 

var sys = require("sys");
sys.puts("Hello World");
1tượng chứa tất cả thông tin về yêu cầu đã được thực hiện đối với máy chủ. Ví dụ: nó chứa chuỗi URL. Đối 
var sys = require("sys");
sys.puts("Hello World");
2tượng là đối tượng xử lý phản hồi từ máy chủ. Đầu tiên, chúng tôi đặt tiêu đề của phản hồi dưới dạng 
var sys = require("sys");
sys.puts("Hello World");
3nội dung, sau đó xuất ra “ Hello World ”, sau đó kết thúc luồng đầu ra. 200 là phản hồi trạng thái.
var sys = require("sys");
sys.puts("Hello World");
1tượng chứa tất cả thông tin về yêu cầu đã được thực hiện đối với máy chủ. Ví dụ: nó chứa chuỗi URL. Đối 
var sys = require("sys");
sys.puts("Hello World");
2tượng là đối tượng xử lý phản hồi từ máy chủ. Đầu tiên, chúng tôi đặt tiêu đề của phản hồi dưới dạng 
var sys = require("sys");
sys.puts("Hello World");
3nội dung, sau đó xuất ra “ Hello World ”, sau đó kết thúc luồng đầu ra. 200 là phản hồi trạng thái.

Chà, ví dụ trên là một ví dụ rất đơn giản nhưng chúng ta có thể thấy rằng bất kỳ URL nào chúng ta cung cấp trong trình duyệt cho cùng một máy chủ, chúng ta sẽ nhận được cùng một kết quả như “Hello World”.

Tạo máy chủ tệp tĩnh đơn giản

Hãy tạo một máy chủ tệp tĩnh đơn giản trong hướng dẫn tiếp theo.

Các mã

var sys = require("sys"),
my_http = require("http"),
path = require("path"),
url = require("url"),
filesys = require("fs");
my_http.createServer(function(request,response){
	var my_path = url.parse(request.url).pathname;
	var full_path = path.join(process.cwd(),my_path);
	path.exists(full_path,function(exists){
		if(!exists){
			response.writeHeader(404, {"Content-Type": "text/plain"});  
			response.write("404 Not Foundn");  
			response.end();
		}
		else{
			filesys.readFile(full_path, "binary", function(err, file) {  
			     if(err) {  
			         response.writeHeader(500, {"Content-Type": "text/plain"});  
			         response.write(err + "n");  
			         response.end();  
			   
			     }  
				 else{
					response.writeHeader(200);  
			        response.write(file, "binary");  
			        response.end();
				}
					 
			});
		}
	});
}).listen(8080);
sys.puts("Server Running on 8080");			

Giải thích mã:

Phần thú vị nhất trong Node.js là lập trình dựa trên sự kiện của nó. Để tạo một máy chủ HTTP, chúng tôi cần HTTP library vì vậy chúng tôi tiếp tục và thêm nó bằng cách sử dụng my_http. Chúng tôi tạo máy chủ bằng chức năng:

var sys = require("sys"),
my_http = require("http"),
path = require("path"),
url = require("url"),
filesys = require("fs");

Hàm được cung cấp làm đối số đầu tiên được thực thi mỗi khi một sự kiện được kích hoạt trong cổng 8080 , do đó, bản thân hàm đề xuất nút lắng nghe một sự kiện trong cổng 8080. Để phát hiện điều này, tôi đã thêm thông báo “ Tôi bị đá ” sẽ hiển thị trên màn hình bảng điều khiển bất cứ khi nào nhận được yêu cầu.

var my_path = url.parse(request.url).pathname;
var full_path = path.join(process.cwd(),my_path);

Đối 

var sys = require("sys");
sys.puts("Hello World");
1tượng chứa tất cả thông tin về yêu cầu đã được thực hiện đối với máy chủ. Ví dụ: nó chứa chuỗi URL. Đối 
var sys = require("sys");
sys.puts("Hello World");
2tượng là đối tượng xử lý phản hồi từ máy chủ. Đầu tiên, chúng tôi đặt tiêu đề của phản hồi dưới dạng 
var sys = require("sys");
sys.puts("Hello World");
3nội dung, sau đó xuất ra “ Hello World ”, sau đó kết thúc luồng đầu ra. 200 là phản hồi trạng thái.request có các chi tiết yêu cầu như chúng ta đã thảo luận trước đó. Chúng tôi sử dụng parse của lớp URL mà chúng tôi đã đưa vào để có được pathname của URL yêu cầu. Sau khi nhận được tên đường dẫn, chúng tôi nối nó với đường dẫn của thư mục làm việc hiện tại để có được đường dẫn đầy đủ của tệp.

Chà, ví dụ trên là một ví dụ rất đơn giản nhưng chúng ta có thể thấy rằng bất kỳ URL nào chúng ta cung cấp trong trình duyệt cho cùng một máy chủ, chúng ta sẽ nhận được cùng một kết quả như “Hello World”.join trong thư viện đường dẫn.

path.exists(full_path,function(exists){

Tạo máy chủ tệp tĩnh đơn giảnexists. Sau khi kiểm tra xong, hàm gọi lại được gọi và chuyển làm đối số thứ hai.

if(!exists){
	response.writeHeader(404, {"Content-Type": "text/plain"});  
	response.write("404 Not Foundn");  
	response.end();
}
else{
	filesys.readFile(full_path, "binary", function(err, file) {  
		 if(err) {  
			 response.writeHeader(500, {"Content-Type": "text/plain"});  
			 response.write(err + "n");  
			 response.end();  
	   
		 }  
		 else{
			response.writeHeader(200);  
			response.write(file, "binary");  
			response.end();
		}
			 
	});
}

Hãy tạo một máy chủ tệp tĩnh đơn giản trong hướng dẫn tiếp theo.

Các mãreadFile trong hệ thống tệp. Chúng ta cũng có thể thấy chức năng gọi lại cho readFile được xác định ở đó chính nó. Nếu không có lỗi khi đọc tệp thì nó sẽ được hiển thị. Nếu có lỗi thì trạng thái 500 được trả về với văn bản lỗi.

var sys = require("sys");
sys.puts("Hello World");
0

Đoạn mã trên khá đơn giản, chúng ta sẽ thảo luận về nó dưới dạng các khối.