WebStorm 错误:表达式语句不是赋值或调用

问题描述 投票:0回答:3

我正在使用 WebStorm,但收到一个我无法理解的错误。 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'
});

问题出在这个块:

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

P.S.:代码运行良好。

javascript node.js webstorm
3个回答
51
投票

您需要将 JavaScript 语言版本更改为 ES6。更改此设置应该可以解决问题:

在某些情况下,您可能需要重新启动 IDE 才能正确反映更改。


24
投票

问题是,如果该语句没有在函数中执行以下任何操作,WebStorm 将显示警告:

  • 调用另一个函数
  • 进行任何类型的作业
  • 返回值
  • (可能还有更多,但这些是我所知道的)

换句话说,WebStorm 视图 的功能是不必要的,并试图帮助您捕获未使用的代码。

例如,这将显示警告:

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

添加返回将消除警告:

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

答案是更改WebStorm设置。


0
投票

我发现,如果我在该区域进行编辑并突出显示代码,有时 IDE 状态会变得混乱,即使代码是正确的。在这些情况下,删除并重新粘贴代码块可以解决我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.