ホームページ >ウェブフロントエンド >jsチュートリアル >Nodejs を使用して Web サーバーを構築する初心者のアプローチ

Nodejs を使用して Web サーバーを構築する初心者のアプローチ

不言
不言オリジナル
2018-09-14 17:22:291901ブラウズ

この記事の内容は初心者向けのnodejsでのWebサーバー構築方法ですので、困っている方は参考にしていただければ幸いです。

nodejs はシンプルな Web サーバーを構築します

1.1 はじめに

Node.js は、Chrome JavaScript ランタイムをベースにしたプラットフォームです。 Google Chrome V8 エンジンはカプセル化されており、主に高速でスケーラブルなネットワーク アプリケーションを作成するために使用されます。

つまり、ブラウザの Javascript はブラウザの JS コード パーサーであり、Node.js はサーバー側の JS コード パーサーであり、サーバー側に保存されている JS コードは Node.js によって解析されて適用されます。

注: Nodejs と js はある意味同じ製品であり、書き方や使用法が異なりますが、重要なのは、nodejs はスコープ サーバー側にあり、js はスコープ ブラウザー側にのみあるということです。 js はブラウザーを指すことができますが、nodejs はブラウザーを指すことができないため、一部の API は異なります。

同様に、js は型付けが弱い言語なので、nodejs も型付けが弱い言語です。銀行システムや決済システムを開発する場合は、nodejs を使用しないでください。 (nodejs は、CPU 集中型のアプリケーションではなく、IO 集中型のアプリケーションに適しています。)

1.2node モジュール タイプ

モジュール タイプには次のものが含まれます:

1)正式に提供されるネイティブ モジュール
global、util、querystring、url、buffer、fs、http、
2) サードパーティ モジュール
mysql、oracle、express
3) カスタム モジュール
ファイル モジュールおよびディレクトリ モジュール

1.3 一般的に使用されるネイティブ モジュール - 難しい点の重要なポイント

1) querystring モジュールは、http リクエスト url
内のクエリ文字列を処理するために使用されます。クエリを入力します。文字列を解析して js オブジェクトにします。
var str=qs.parse(obj); js オブジェクトをクエリ文字列に変換します。

2) URL モジュールは、http リクエスト アドレスを解析するために使用されます。
var obj = url.parse(str) URL 文字列をオブジェクトに解析します。
var obj = url.parse(str,true) URL 文字列をオブジェクトに解析し、クエリを変換します。文字列もオブジェクトに解析されます

3) バッファ バッファは基本的に、将来使用するデータ (数値、文字列、バイナリ画像、オーディオ、ビデオなど) を一時的に保存するために使用されるメモリ領域です。 ,
この領域が「キャッシュ」になります。 ******グローバル オブジェクトには必須参照は必要ありません******

//创建一个大小为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 ファイルシステムモジュール
fs モジュールは、ファイルシステム内のファイル/ディレクトリの追加、削除、変更、確認、読み取り、書き込みの機能を提供します。

//同步读取文件中的内容
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) http モジュールは、http プロトコルに基づいてクライアント プログラム (つまりブラウザ) を作成するために使用できます。 http プロトコルに基づくサーバー プログラムの終了 (Web サーバーなど)
http モジュールを使用して Web サーバーを作成します: var server=http.createServer();
1) クライアントの http リクエスト メッセージを受信します
2) 解析しますクライアント要求メッセージ
3) クライアントから要求されたファイルを読み取ります。
4) http 応答メッセージをクライアントに送信します。本文はクライアントが要求したファイルです。

1.4 Web サーバーの構築方法

以上の説明を踏まえ、 Nodejs を使用して小規模な Web サーバーを構築する方法について話すことができます。 (以下のコードとコメントをよく見てください。)

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();
            }
        });
    }
});

この記事は初心者に適しています。健全な Web サーバーを構築したい場合は、ミドルウェアに関するより詳しい知識が必要です。

以上がNodejs を使用して Web サーバーを構築する初心者のアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。