今回の記事はコールバック関数を使ったhttpサーバーをjsで実装するという内容で、非常に詳しい内容となっております。次に具体的な内容を見ていきますので、皆様のお役に立てれば幸いです。
var http = require('http'); // 使用http模块 http.createServer ( function (request, response) { response.writeHead(200, {'Content-Type': 'text-plain'}); // http响应头部 response.end('hello word\n'); // 返回的内容 } ).listen(8124); // 监听8124端口rrree
http://127.0 にアクセスします。 0.1: 8124/ hello word を返します
2 つの方法、
サーバーとして使用する場合は、http サーバーを作成し、http クライアント要求をリッスンして応答を返します。
ブラウザの開発者ツールを開き、ネットワーク パネルを選択し、ページを更新してファイルを再度選択し、ヘッダー ウィンドウに現在のファイル リクエストの http ヘッダー情報を表示します。
最初にリクエスト ヘッダー、その後にリクエスト本文が続きます。
http リクエストがサーバーに送信されると、最初から最後まで 1 バイトのデータ ストリームで送信されます。http モジュールによって作成された http サーバーは、完全なリクエストを受信した後にコールバック関数を実行します。 header,
PS C:\Users\mingm\Desktop\test> node main.js
var http = require('http'); // 使用http模块 http.createServer ( function (request, response) { var body = []; console.log(request.method); console.log("--------------"); console.log(request.headers); console.log("---------------"); } ).listen(8124); // 监听8124端口コールバック関数
PS C:\Users\mingm\Desktop\test> node main.js GET -------------- { host: '127.0.0.1:8124', connection: 'keep-alive', 'cache-control': 'max-age=0', 'upgrade-insecure-requests': '1', dnt: '1', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9' } ---------------
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { console.log("3333"); console.log(err); console.log(data.toString()); console.log("3333"); }); console.log("程序执行结束!");
PS C:\Users\mingm\Desktop\test> node main.js 程序执行结束! 3333 null 33333333333333333333333333 3333 PS C:\Users\mingm\Desktop\test>
var http = require('http'); http.createServer( function (request, response) { var body = []; console.log(request.method); console.log(request.headers); console.log(1111111111); console.log(body); request.on('end', function () { body = Buffer.concat(body); console.log(222222222222222); console.log(body.toString()); }); console.log(4444444444444); response.writeHead(200, {'Content-Type': 'text-plain'}); response.end('hello word\n'); console.log(55555555555); } ).listen(8124);この実行は非同期です。最初に実行されます
PS C:\Users\mingm\Desktop\test> node main.js GET { host: '127.0.0.1:8124', connection: 'keep-alive', 'cache-control': 'max-age=0', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', dnt: '1', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9' } 1111111111 [] 4444444444444 55555555555 222222222222222 GET { host: '127.0.0.1:8124', connection: 'keep-alive', pragma: 'no-cache', 'cache-control': 'no-cache', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', dnt: '1', accept: 'image/webp,image/apng,image/*,*/*;q=0.8', referer: 'http://127.0.0.1:8124/', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9' } 1111111111 [] 4444444444444 55555555555 222222222222222request.on は戻りを待つ必要があるため、次のステートメントは非同期で実行されます。その後、内容が返されてリクエストが実行され、その結果を関数の最後のパラメータに通知して実行を完了します。 http レスポンスサーバーはクライアントから要求されたリクエストボディをそのままクライアントに返します
console.log(body);errree
console.log(444);
axios ソース コード分析 HTTP リクエスト ライブラリの実装方法
以上がhttpサーバーを実装するためのjsのコールバック関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。