2017-06-02 2 views
0

J'essaie d'utiliser Spark avec tapuscrit mais quand j'écris cetteétincelle pour la syntaxe dactylographiée

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test'); 
    chalk.green('Hello word'); 
}) 

Il me renvoie non défini, mais quand j'écris seulement 1 ligne cela fonctionne

Spark.get("/facture", (req, res) => 
    chalk.green('Hello word'); 
) 

Je pense que le problème vient de la syntaxe. Quelqu'un peut m'aider s'il vous plaît

Répondre

0

Lorsque vous utilisez des fonctions fléchées, si elles sont à une ligne, vous pouvez omettre le {} et la valeur retournée par l'expression sera la valeur de retour de la fonction.

En substance:

Spark.get("/facture", (req, res) => 
    chalk.green('Hello word'); 
) 

Transpiles à:

Spark.get("/facture", function (req, res) { 
    return chalk.green('Hello word'); 
}); 

Toutefois, lorsque vous avez plus d'une instruction et que vous faites un corps de la fonction de flèche, vous devez retourner manuellement valeur comme vous le feriez dans les fonctions normales.

Vous pouvez facilement le voir lorsqu'il est transpilé.

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test'); 
    chalk.green('Hello word'); 
}) 

Transpiles à:

Spark.get("/facture", function (req, res) { 
    chalk.red('Hello test'); 
    chalk.green('Hello word'); 
}); 

Si vous voulez retourner quelque chose que vous devez écrire la déclaration de retour:

Spark.get("/facture", (req, res) => { 
    chalk.red('Hello test'); 
    return chalk.green('Hello word'); 
}) 

Il finit comme ça en javascript:

Spark.get("/facture", function (req, res) { 
    chalk.red('Hello test'); 
    return chalk.green('Hello word'); 
}); 

Vous pouvez voir les exemples dans la cour de récréation here et en savoir plus sur les fonctions de direction sur la page pour les here MDN.