Fungsi Node.js


Dalam JavaScript, fungsi boleh menerima parameter sebagai fungsi lain. Kita boleh mentakrifkan fungsi dahulu dan kemudian luluskannya, atau kita boleh menentukan fungsi secara langsung di mana parameter diluluskan.

Penggunaan fungsi dalam Node.js adalah serupa dengan Javascript Sebagai contoh, anda boleh melakukan ini:

function say(word) {
  console.log(word);
}

function execute(someFunction, value) {
  someFunction(value);
}

execute(say, "Hello");

Dalam kod di atas, kami menggunakan fungsi say sebagai pembolehubah pertama. melaksanakan fungsi. Apa yang dikembalikan di sini bukanlah nilai pulangan katakan, tetapi katakan sendiri!

Dengan cara ini, say menjadi pembolehubah setempat someFunction dalam execute boleh menggunakan fungsi say dengan memanggil someFunction() (dengan kurungan).

Sudah tentu, memandangkan say mempunyai pembolehubah, execute boleh melepasi pembolehubah sedemikian apabila memanggil someFunction.


Fungsi tanpa nama

Kita boleh menghantar fungsi sebagai pembolehubah. Tetapi kita tidak perlu mengelilingi bulatan "tentukan dahulu, kemudian lulus" ini Kita boleh mentakrifkan dan lulus fungsi ini secara langsung dalam kurungan fungsi lain:

function execute(someFunction, value) {
  someFunction(value);
}

execute(function(word){ console.log(word) }, "Hello");

Di mana kita menerima parameter pertama dalam laksanakan Secara Terus. mentakrifkan fungsi yang akan kita lalui untuk dilaksanakan.

Dengan cara ini, kita tidak perlu menamakan fungsi itu, sebab itu ia dipanggil fungsi tanpa nama.


Bagaimana fungsi lulus menjadikan pelayan HTTP berfungsi

Dengan pengetahuan ini, mari kita lihat pelayan HTTP kami yang ringkas tetapi tidak ringkas:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);

Sekarang Ia sepatutnya kelihatan lebih jelas: kami menghantar fungsi tanpa nama kepada fungsi createServer.

Tujuan yang sama boleh dicapai dengan kod seperti ini:

var http = require("http");

function onRequest(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}

http.createServer(onRequest).listen(8888);