web-dev-qa-db-fra.com

Erreur WebStorm: l'instruction d'expression n'est pas une affectation ou un appel

J'utilise WebStorm et j'obtiens une erreur que je ne peux pas comprendre. Node.js + MongoDB.

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.connect(' mongodb://localhost:27017/TodoApp');

var Todo = mongoose.model('Todo', {
    text: {
        type: String
    },
    completed: {
        type: Boolean
    },
    completedAt: {
        type: Number
    }
});

var newTodo = new Todo({
    text: 'Cook dinner'
});

Le problème est dans ce bloc:

newTodo.save().then((doc) => {
    console.log('Saved todo', doc);
}, (e) => {
    console.log('Unable to save todo')
})

P.S .: Le code fonctionne bien.

17
Robison William

Vous devez remplacer la version du langage JavaScript par ES6. La modification de ce paramètre devrait résoudre le problème:

Settings to change Javscript version to ES6

Dans certains scénarios, vous devrez peut-être redémarrer votre IDE pour que les modifications se reflètent correctement.

41
gauravmuk

Le problème est que WebStorm affichera un avertissement si cette instruction ne fait pas l'un des éléments suivants dans une fonction:

  • Appeler une autre fonction
  • Faire toute sorte d'affectation
  • Renvoyer une valeur
  • (Il peut y en avoir plus, mais ce sont ceux que je connais)

En d'autres termes, vues WebStorm cette fonction est inutile et essaie de vous aider à récupérer le code inutilisé.

Par exemple, cela affichera l'avertissement:

const arr = [1, 2];
const willShowWarning = arr.map(num => {
    num + 1;
});

L'ajout d'un retour supprimera l'avertissement:

const arr = [1, 2];
const willNotShowWarning = arr.map(num => {
    return num + 1;
});

La réponse est pas pour modifier les paramètres de WebStorm.

3
Juan Hurtado