Node.js
アプリケーションは次の 3 つの部分で構成されます。
(1)require
指示:
Node.js
では、require
コマンドを使用してモジュールをロードおよびインポートします。インポートされるモジュールは、組み込みモジュール、サードパーティ モジュール、またはカスタム モジュールにすることができます。
文法形式:
const module = require('module-name');
module-name
ファイルパス(相対パスまたは絶対パス)またはモジュール名を指定できます。モジュール名の場合は、ディレクトリNode.js
からモジュールが自動的に検索されます。node_modules
require
このコマンドは、ロードされたモジュールのエクスポートされたオブジェクトを返します。これを介して、モジュールで定義されているプロパティとメソッドにアクセスできます。モジュール内に複数のエクスポートされたオブジェクトがある場合は、代入を構造化することで取得できます。
var http = require("http");
上に示したように、require
ディレクティブをロードしhttp
、インスタンス化されたHTTP
ものを変数に割り当てますhttp
。
(2) サーバーを作成します。
サーバーは、サーバーと同様Apache 、Nginx
に。HTTP
http.createServer(function (request, response) {
}).listen(6060 );
上に示したように、http.createServer()
メソッドサーバーを作成し、createServer
その関数に匿名関数を渡します。関数はrequest, response
パラメータ、listen
メソッドを使用して6060
ポート。
(3) リクエストの受付とリクエストへの対応
サーバーの作成は簡単で、クライアントはブラウザまたは端末を使用してHTTP
リクエスト、サーバーはリクエストを受信した後に応答データを返します。
http.createServer(function (request, response) {
}).listen(6060 );
コールバックが起動すると、request
との 2 つのパラメータが渡されますresponse
。これらは、メソッドを使用してHTTP
リクエスト(たとえば、リクエスト元のブラウザに何かを送り返す)。
ここで、D:\demo\node
下にserver.js
、動作するHTTP
サーバー。コードは次のとおりです。
// 请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量
var http = require('http');
const hostname = '127.0.0.1';
const port = 6060;
// 调用 http 模块提供的函数: createServer 。这个函数会返回一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号
http.createServer(function (request, response) {
console.log("Request received.");
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
// 当收到请求时,使用 response.writeHead() 函数发送一个HTTP状态200和HTTP头的内容类型(content-type)
response.writeHead(200, {
'Content-Type': 'text/plain'});
// 使用 response.write() 函数在HTTP相应主体中发送文本“response message:"
response.write("response message:");
// 调用 response.end() 发送响应数据 "Hello World" 完成响应
response.end('Hello World!\n');
}).listen(port);
// 终端打印如下信息
console.log(`Server running at http://${
hostname}:${
port}/`);
node
次のコマンドでコードを実行します。
ブラウザを開いて http://localhost:6060/ にアクセスすると、次のようなページ効果を確認できます。
(サーバーが Web ページにアクセスすると、サーバーは「リクエストを受信しました。」を 2 回出力する場合があることに注意してください。これは、ほとんどのサーバーがアクセスhttp://localhost:6060/
時にhttp://localhost:6060/favicon.ico
)