Heim  >  Artikel  >  Web-Frontend  >  Der Ansatz eines Anfängers zum Aufbau eines Webservers mit NodeJS

Der Ansatz eines Anfängers zum Aufbau eines Webservers mit NodeJS

不言
不言Original
2018-09-14 17:22:291864Durchsuche

In diesem Artikel erfahren Sie, wie Anfänger Webserver mit Nodejs erstellen. Freunde in Not können sich darauf beziehen.

Nodejs erstellt einen einfachen Webserver

1.1 Einführung

Node.js ist eine Plattform, die auf der Chrome-JavaScript-Laufzeitumgebung basiert Google Chrome Die V8-Engine ist gekapselt und wird hauptsächlich zur Erstellung schneller, skalierbarer Netzwerkanwendungen verwendet.

Mit anderen Worten, das Javascript des Browsers ist der Browser-JS-Codeparser, während Node.js der serverseitige JS-Codeparser ist. Der auf der Serverseite gespeicherte JS-Code wird von Node.js analysiert und angewendet.

Hinweis: Obwohl Nodejs und js in gewisser Weise dasselbe Produkt sind, sind ihre Schreibweise und Verwendung unterschiedlich, aber der Punkt ist, dass sich Nodejs auf der Seite des Bereichsservers befindet, während sich js nur auf der Seite des Bereichsbrowsers befindet, js Es kann auf den Browser verweisen, aber nodejs kann nicht auf den Browser verweisen, daher sind einige APIs unterschiedlich.

In ähnlicher Weise ist js eine schwach typisierte Sprache, daher gibt es auch Abweichungen im Sprachalgorithmus. Wenn Sie ein Bankensystem oder ein Zahlungssystem entwickeln, verwenden Sie keine nodejs. (nodejs eignet sich für IO-intensive Anwendungen, nicht für CPU-intensive Anwendungen.)

1.2 Knotenmodultypen

Modultypen sind:   

1) Offiziell bereitgestellte native Module
global, util, querystring, url, buffer, fs, http,
2) Module von Drittanbietern
mysql, oracle, express
3) Benutzerdefinierte Module
Dateimodul und Verzeichnismodul

1.3 Häufig verwendete native Module – Hauptschwierigkeitspunkte

1) Das Querystring-Modul wird verwendet, um den Abfragestring in der http-Anfrage-URL zu verarbeiten
var obj=qs.parse(str); Analysieren Sie die Zeichenfolge in ein js-Objekt
var str=qs.parse(obj); Konvertieren Sie das js-Objekt in eine Abfragezeichenfolge

2) Das URL-Modul wird verwendet, um eine HTTP-Anforderungsadresse zu analysieren und jede zu erhalten anderer Teil
var obj = url.parse(str) Parst einen URL-String in ein Objekt
var obj = url.parse(str,true) Parst einen URL-String in ein Objekt und konvertiert den Die Abfragezeichenfolge ist ebenfalls in ein Objekt analysiert

3) Puffer Der Puffer ist im Wesentlichen ein Speicherbereich, der zum vorübergehenden Speichern von Daten für die zukünftige Verwendung verwendet wird (es können Zahlen, Zeichenfolgen, Binärbilder, Audio und Video usw. sein).
Dieser Bereich wird zum „Cache“. ******Globale Objekte erfordern keine Referenzen******

//创建一个大小为10字节的缓冲区
var buf1 = Buffer.alloc(10); //alloc:分配
console.log(buf1);
var buf2 = Buffer.alloc(1024*3); //alloc:分配3kb大小的缓冲区
console.log(buf2);
var buf3=Buffer.from(['a','b','c']);
console.log(buf3);
//使用一个字符串创建一个缓冲区
var buf4=Buffer.from('abcd');
console.log(buf4);
var buf5=Buffer.from('一二三文');
console.log(buf5);
//把缓冲区的内容转换为字符串
console.log(buf5.toString());

4) fs-Dateisystemmodul
Das fs-Modul bietet die Funktionen zum Hinzufügen, Löschen, Ändern, Überprüfen, Lesen und Schreiben von Dateien/Verzeichnissen im Dateisystem.

//同步读取文件中的内容
var data=fs.readFileSync(file);
//同步向文件中写出内容(删除已有内容)
fs.writeFileSync(file,str/buf);
//同步向文件中追加写出内容(不删除已有内容)
fs.appendFileSync(file,str.buf)
例如fs异步读写文件 不需要等待直接往下走
//异步读取文件中的内容
fs.readFile(file,funcgtion(err,data){
});
//异步向文件中写出内容(删除已有内容)
fs.writeFile(file,str/buf,function(){
});
//异步向文件中追加写出内容(不删除已有内容)
fs.appendFile(file,str.buf,function(){

});

5) Das http-Modul kann zum Schreiben von Client-Programmen (d. h. Browsern) verwendet werden, die auf dem http-Protokoll basieren.
kann auch zum Schreiben verwendet werden Server basierend auf dem http-Protokoll Terminalprogramm (d. h. Webserver)
Schreiben Sie einen Webserver mit dem http-Modul: var server=http.createServer();
1) Empfangen Sie die HTTP-Anforderungsnachricht des Clients
2) Analysieren Sie die Client-Anforderungsnachricht
3) Lesen Sie die vom Client angeforderte Datei.
4) Senden Sie eine http-Antwortnachricht an den Client. Der Hauptteil ist die vom Client angeforderte Datei.

1.4 So erstellen Sie einen Webserver

Nachdem wir über das oben Gesagte gesprochen haben, werden wir Ich kann darüber sprechen, wie man mit NodeJS einen kleinen Webserver erstellt! (Schauen Sie sich den Code und die Kommentare unten genau an!)

const http=require('http'); 
const url=require('url');
const fs=require('fs'); //引用模块前面讲过啦每个模块都是干嘛的
//创建一个http服务器
var server=http.createServer();
//让http服务器监听指定的端口
server.listen(80);
//当客户端请求到来时,处理请求消息
server.on('request',function(req,res){
    //处理消息 req请求消息,res响应消息
    console.log('nodejs服务器接收到一个请求');
    //解析客户端发来的请求消息
    console.log('请求地址'+req.url);
    var objURL=url.parse(req.url);
    /*console.log(objURL);*/
    res.setHeader('Content-Type','text/html;charset=utf-8');
    var path = objURL.pathname;
    if(path==='/login'){
        
        /*res.write(&#39;<h1>欢迎访问登录页面</h1>&#39;);*/
        fs.readFile(&#39;./public/login.html&#39;,(err,data)=>{  
            if(err){
                res.write(&#39;<h1>报错了</h1>&#39;);
            }else{
                res.statusCode=200;
                res.write(data);
                res.end();
            }
        });
        
    }else if(path===&#39;/index&#39;){
        
        fs.readFile(&#39;./public/index.html&#39;,(err,data)=>{
            if(err)throw err;//若存在错误抛出错误,后面不执行
            res.statusCode=200;
            res.write(data);
            res.end();
            
        });
    }else{
        
        fs.readFile(&#39;./public/404.html&#39;,(err,data)=>{
            if(err){
                res.write(&#39;<h1>报错了</h1>&#39;);
            }else{
                res.statusCode=404;
                res.write(data);
                res.end();
            }
        });
    }
});

Dieser Artikel ist für Anfänger geeignet. Wenn Sie einen soliden Webserver erstellen möchten, benötigen Sie mehr Kenntnisse über Middleware.

Das obige ist der detaillierte Inhalt vonDer Ansatz eines Anfängers zum Aufbau eines Webservers mit NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn