【问题标题】:WebStorm 11 unrecognized MongoDb (with mongoose) functionsWebStorm 11 无法识别的 MongoDb(带有猫鼬)功能
【发布时间】:2020-03-26 22:16:14
【问题描述】:

WebStorm 在以下功能上向我发出“无法识别的功能或方法”的警告:

  • Schema.find() [find() 无法识别]
  • Schema.aggregate() [aggregate() 无法识别]
  • Schema.findOneAndUpdate() [findOneAndUpdate() 无法识别]

我已尝试启用 NodeJs 核心库并进行安装

  • mongodb-DefinitelyType
  • 猫鼬-DefinitelyType
  • mongoose-auto-increment-DefinitelyType
  • mongoose-deep-populate-DefinitelyType
  • 猫鼬-DefinitelyType
  • mongoose-mock-DefinitelyType

Preferences > JavaScript > Libraries

但这并没有解决我的问题。有人知道解决方案吗?

【问题讨论】:

  • 你的代码到底是什么样的?可能与youtrack.jetbrains.com/issue/WEB-17099有关
  • 这个解决方法解决了我的问题 var MODEL_PATH = '../models/' var User = require(MODEL_PATH + 'user'),谢谢。如果你回答我会接受。

标签: mongodb mongoose webstorm


【解决方案1】:

【讨论】:

    【解决方案2】:

    这是对我有用的可能解决方案,没有任何问题。

    将相对路径移出 require() 语句如下。

    const PATH = '../models/';
    const User = require(PATH + 'user');
    

    或者

    不要单独导入 Schema。

    像这样导入猫鼬

    const mongoose = require('mongoose');
    

    并使用mongoose.Schema 访问Schema

    【讨论】:

    • 谢谢,它工作得很好......也许只是使用'path'和'__dir'变量: const path = require('path'); const Post = require(path.join(__dirname,'../models/post'));
    • 感谢第一个似乎工作正常。但它为什么会这样工作是没有意义的!
    【解决方案3】:

    我不知道原因,但不知何故这有效:

    export
    module.exports.User = User; // your model
    
    import
    const User = require("../dbSchema/user.js").User;
    

    【讨论】:

      【解决方案4】:

      请注意,模式已正确插入。不要忘记检查您的架构。

      样本

       module.exports = mongoose.model('SampleCollection', SampleSchema);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-06
        • 2014-07-18
        • 1970-01-01
        • 2021-01-06
        • 2015-03-21
        • 1970-01-01
        • 2017-05-17
        • 2020-07-28
        相关资源
        最近更新 更多