Comment procéder pour définir les paramètres par défaut dans node.js?
Par exemple, disons que j'ai une fonction qui devrait normalement ressembler à ceci:
function(anInt, aString, cb, aBool=true){
if(bool){...;}else{...;}
cb();
}
L'appeler ressemblerait à quelque chose comme ceci:
function(1, 'no', function(){
...
}, false);
ou:
function(2, 'yes', function(){
...
});
Cependant, il ne semble pas que node.js supporte les paramètres par défaut de cette manière. Quelle est la meilleure façon d'accomplir ci-dessus?
La solution la plus simple est de dire à l'intérieur de la fonction
var variable1 = typeof variable1 !== 'undefined' ? variable1 : default_value;
Ainsi, si l'utilisateur n'a pas fourni variable1, vous le remplacez par la valeur par défaut.
Dans ton cas:
function(anInt, aString, cb, aBool) {
aBool = typeof aBool !== 'undefined' ? aBool : true;
if(bool){...;}else{...;}
cb();
}
réponse 2017: le nœud 6 et supérieur inclut les paramètres par défaut ES6
var sayMessage = function(message='This is a default message.') {
console.log(message);
}
Voir problème github . Vous pouvez activer les paramètres par défaut dans les versions de nœud actuelles (par exemple 5.8.0) en utilisant --harmony_default_parameters
node --harmony_default_parameters --eval "const t = function(i = 42) { return i }; console.log(t());"
[...]
Il sera activé par défaut dans la version 6.0
Vous pouvez utiliser bind
pour créer une nouvelle fonction contenant déjà un ensemble d'arguments:
fn1 = fn.bind(fn, 1, 'no', function(){}, false);
fn1();
fn2 = fn.bind(fn, 2, 'yes', function(){});
fn2(true);
Alternativement, des langues comme CoffeeScript qui se compilent en JavaScript fournissent des mécanismes qui prennent en charge les paramètres par défaut sans avoir à utiliser bind
:
CoffeeScript:
fn = (bar='foo') ->
JavaScript:
fn = function(bar) {
if (bar == null) {
bar = 'foo';
}
};