Latest web development tutorials

fonction Node.js

En JavaScript, une fonction en tant que paramètre à une autre fonction reçoit. Nous pouvons définir une fonction, et ensuite passer à définir directement dans la fonction de transfert du lieu.

Node.js utiliser une fonction similaire à Javascript, par exemple, vous pouvez faire ceci:

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

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

execute(say, "Hello");

Le code ci-dessus, nous disons la fonction comme premier argument exécuter des fonctions ont été adoptées. Ce retour est pas la valeur de retour de dire, mais se dire!

Ainsi, par exemple devient exécuter des variables locales someFunction, exécuter en appelant someFunction () (sous forme de parenthèses) à dire l'utilisation de la fonction.

Bien sûr, parce que dire qu'il ya une variable, exécutez peut passer une telle variable lorsque vous appelez someFunction.


Anonyme fonction

Nous pouvons mettre une fonction passée en argument. Mais nous ne devons pas à propos de cette «première définie, puis passer," le cercle, on peut définir une autre fonction entre parenthèses et de transmettre cette fonction:

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

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

Nous acceptons le premier argument dans le définit exécuter directement où nous sommes prêts à passer à exécuter la fonction.

De cette façon, nous ne même pas un nom pour cette fonction, ce qui est pourquoi il est appelé une fonction anonyme.


La fonction de transfert est de savoir comment obtenir un travail de serveur HTTP

Avec cette connaissance, nous regardons notre serveur simple mais pas simple HTTP:

var http = require("http");

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

Maintenant, il semble bien doit être clair: nous passons une fonction anonyme à la fonction createServer.

Un tel code peut également obtenir le même résultat:

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