ホームページ >ウェブフロントエンド >jsチュートリアル >Nodejs を使用して Web サーバーを構築する初心者のアプローチ
この記事の内容は初心者向けの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) 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 応答メッセージをクライアントに送信します。本文はクライアントが要求したファイルです。
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('<h1>欢迎访问登录页面</h1>');*/ fs.readFile('./public/login.html',(err,data)=>{ if(err){ res.write('<h1>报错了</h1>'); }else{ res.statusCode=200; res.write(data); res.end(); } }); }else if(path==='/index'){ fs.readFile('./public/index.html',(err,data)=>{ if(err)throw err;//若存在错误抛出错误,后面不执行 res.statusCode=200; res.write(data); res.end(); }); }else{ fs.readFile('./public/404.html',(err,data)=>{ if(err){ res.write('<h1>报错了</h1>'); }else{ res.statusCode=404; res.write(data); res.end(); } }); } });この記事は初心者に適しています。健全な Web サーバーを構築したい場合は、ミドルウェアに関するより詳しい知識が必要です。
以上がNodejs を使用して Web サーバーを構築する初心者のアプローチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。