【问题标题】:node-express app.get() marked as unresolved in webstormnode-express app.get() 在 webstorm 中标记为未解决
【发布时间】:2014-11-24 19:17:20
【问题描述】:

如果您遵循 JetBrains 的 Getting Started with Node.js in WebStorm 说明,则节点快递特定代码会正确突出显示。但是,如果您创建自己的简单 node-express 项目,例如使用node-express'Guide,然后将app.get()等具体函数表达为下划线并标有如下警告:

Unresolved function or method get()

即使您在Settings\JavaScript\Libraries 下启用以下库,也会发生这种情况:

  • Node.js 全局变量
  • Node.js v0.10.31 核心模块
  • express-DefinitelyTyped(需要下载)

如何配置 WebStorm 来解析 app.get() 等 node-express 函数?

【问题讨论】:

    标签: express webstorm unresolved-external


    【解决方案1】:

    在你的项目中使用 express 类型而不是 express 类型:

    npm install --save-dev @types/express
    

    或者,对于纱线用户:

    yarn add --dev @types/express
    

    【讨论】:

    • @Jonathan,通过添加 express absoluteTyped 对我来说修复警告和所有内容非常简单。此刻与您唯一显着的区别是我使用的是 IDEA 而不是 WebStorm。我们能否验证您是否请告知您使用的是 ECMAScript、Node.js 和 express 的哪些版本?我正在使用 ECMAScript 6、Node.js v8.3.0 和 express v4.15.4。我有你在 ECMAScript 5.1 上的填充物 :-)
    • 这对我有用,但我想在全球范围内使用它,-g 标志不起作用。所以我添加了另一个答案,其中包含指向允许全局安装的指南的链接。
    【解决方案2】:

    This 非常适合我。

    TL;DR: 你去Settings/Preferences --> Languages and Frameworks --> JavaScript --> Libraries,点击右边的Download按钮,然后选择“express”(或者你需要的任何其他库)并点击Download and Install.

    【讨论】:

    • 我试过了。但点击下载并安装后。没有任何回应。不知道webStorm新版本(2019.1)有没有变化。
    • 也许您遇到了某种连接问题?这仍然对我有用(我在 IDEA 上,而不是 webStorm,但它应该是一样的......)
    • 谢谢。解决了。我终于发现它(@types/express)已经在列表中,所以没有任何回应。通过安装所需的包解决了缺乏编码帮助并显示为未解析符号的问题。 const { body, validationResult } = require('express-validator/check'); const { sanitizeBody } = require('express-validator/filter');
    【解决方案3】:

    为 Express 项目启用 express-DefinitelyTyped 打字稿库确实对我有用 - app.get() 已成功解决。添加打字稿存根是唯一可能的解决方法,因为 WebStorm 无法理解 express 的定义方式 - 请参阅 https://youtrack.jetbrains.com/issue/WEB-6667#comment=27-470393

    如果添加 typescript 存根对您不起作用,请尝试使缓存无效。如果这没有帮助,我建议联系 jetbrains 支持,提供示例项目

    【讨论】:

    • 在关注 node-express' Guide 时它对您有用吗?对我来说,添加 express-DefinitelyTyped 确实会将默认主题中 get 的颜色从灰色更改为紫色,但是下划线和警告仍然存在。我尝试了缓存失效,它没有帮助。
    • 我明白了。问题是 webstorm 无法将 app.get() 的参数与 express.d.ts 中指定的参数匹配(不期望回调作为第二个参数)。您可以尝试关闭“签名不匹配”检查以避免看到警告
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2018-07-25
    • 1970-01-01
    • 2018-07-28
    • 2017-04-11
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多