Latest web development tutorials

Node.js Web-Modul

Was ist ein Web-Server?

Web-Server bezieht sich allgemein auf die Site-Server befindet sich auf dem Internet zu irgendeiner Art von Computer-Programm bezieht, die grundlegende Funktionalität eines Web-Servers ist es, Informationen Web-Browsing-Dienst zur Verfügung zu stellen. Es unterstützt nur HTTP-Protokoll, HTML-Dokument-Format und URL und den Webbrowser des Client mit.

Die meisten Webserver serverseitige Skriptsprache (PHP, Python, Ruby) unterstützen, etc. und Daten erhalten aus der Datenbank über eine Skriptsprache, kehrten die Ergebnisse an den Client-Browser.

Die drei am meisten Mainstream-Web-Server ist Apache, Nginx, IIS.


Web Application Architecture

  • -Client - Client bezieht sich allgemein auf den Browser, kann der Browser - Anforderung Daten an den Server über HTTP - Protokoll.

  • Server - Server bezieht sich allgemein auf den Web - Server, kann der Client eine Anfrage erhalten haben , eine Antwort auf die Client - Daten senden.

  • Business - Business - Schicht, durch die Web - Server - Verarbeitungsanwendungen, wie zum Beispiel die Interaktion mit der Datenbank, Logik, rufen Sie externe Programme.

  • Daten - die Datenschicht, die allgemein mit der Datenbank zusammengesetzt.


Erstellen Sie einen Web-Server mit Knoten

Node.js bietet HTTP-Modul, wird http Modul hauptsächlich verwendet, HTTP-Server und Clients zu bauen, der HTTP-Server oder Client-Funktion muss http-Modul aufgerufen werden, der Code ist wie folgt:

var http = require('http');

Im Folgenden ist eine Demonstration eines einfachen HTTP-Server-Architektur (mit dem 8081-Port), erstellen server.js Datei, der Code ist wie folgt:

var http = require('http');
var fs = require('fs');
var url = require('url');


// 创建服务器
http.createServer( function (request, response) {  
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;
   
   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");
   
   // 从文件系统中读取请求的文件内容
   fs.readFile(pathname.substr(1), function (err, data) {
      if (err) {
         console.log(err);
         // HTTP 状态码: 404 : NOT FOUND
         // Content Type: text/plain
         response.writeHead(404, {'Content-Type': 'text/html'});
      }else{	         
         // HTTP 状态码: 200 : OK
         // Content Type: text/plain
         response.writeHead(200, {'Content-Type': 'text/html'});	
         
         // 响应文件内容
         response.write(data.toString());		
      }
      //  发送响应数据
      response.end();
   });   
}).listen(8081);

// 控制台会输出以下信息
console.log('Server running at http://127.0.0.1:8081/');

Als nächstes werden wir eine Datei index.htm im Verzeichnis zu erstellen, wie folgt:

<html>
<head>
<title>Sample Page</title>
</head>
<body>
Hello World!
</body>
</html>

Vorstand server.js Datei:

$ node server.js
Server running at http://127.0.0.1:8081/

Dann legen wir die Adresse in Ihrem Browser: http: //127.0.0.1: 8081 / index.htm, die Anzeige wie unten dargestellt:

Executive-server.js Konsole Ausgangsinformationen ist wie folgt:

Server running at http://127.0.0.1:8081/
Request for /index.htm received.     #  客户端请求信息

Gif Beispiele zeigen


Verwenden Knoten Erstellen von Web-Client

Knoten Erstellen von Web-Clients benötigen http-Modul, erstellen Client.js Datei einzuführen, der Code ist wie folgt:

var http = require('http');

// 用于请求的选项
var options = {
   host: 'localhost',
   port: '8081',
   path: '/index.htm'  
};

// 处理响应的回调函数
var callback = function(response){
   // 不断更新数据
   var body = '';
   response.on('data', function(data) {
      body += data;
   });
   
   response.on('end', function() {
      // 数据接收完成
      console.log(body);
   });
}
// 向服务端发送请求
var req = http.request(options, callback);
req.end();

Öffnen Sie ein neues Terminal, führen Client.js Datei, sind die Ausgabeergebnisse wie folgt:

$ node client.js
<html>
<head>
<title>Sample Page</title>
</head>
<body>
Hello World!
</body>
</html>

Executive-server.js Konsole Ausgangsinformationen ist wie folgt:

Server running at http://127.0.0.1:8081/
Request for /index.htm received.   # 客户端请求信息

Gif Beispiele zeigen