Visual Studio代码-将模型导入另一个文件后,无法识别猫鼬(自定义)架构方法

vam*_*ire 6 javascript mongoose node.js visual-studio-code

预期功能:对象方法的自动完成和方法参数的识别

实际功能:无法识别自动完成或方法参数。any将鼠标悬停在工具提示上的方法显示上(而不是该方法的父对象)

有什么帮助吗?我今天刚从Webstorm切换到VSC,遇到了这个问题。

结构和代码

自定义静态方法(导出userProfile模型)/database/profileModel.js

userSchema.statics.addProfile = function(formData){
        this.create(formData, e => e ? console.log(e) : false);
    };

    userSchema.statics.getProfile = function(userName){
        return this.findOne({userName : userName});
    };

    userSchema.statics.getProfileItem = function(userName, item){
        return this.findOne({userName : userName}, item);
    };
Run Code Online (Sandbox Code Playgroud)

API端点(导出路由器)/routes/APIendpoint.js

const express = require('express');
const router = module.exports = express.Router();


const userProfile = require('../database/profileModel').userProfile;
userProfile.getProfileItem()
Run Code Online (Sandbox Code Playgroud)

@Neil Lunn这是它起作用的证明-因为您非常确定。 没有高级模式

在此处输入图片说明

同样,这也不能解决问题。这是使用高级架构的新代码。它识别该文件中的方法,但不能识别导入该文件的其他文件中的方法。

class User {

// general static methods
    addProfile(formData) {
        this.create(formData, error => console.log(error));
    }

    getProfile(userName) {
        return this.findOne({userName : userName});
    }

    getProfileItem(userName, item) {
        return this.findOne({userName : userName}, item);
    }
}

userSchema.loadClass(User);

const userProfile = module.exports = mongoose.model('userProfile', userSchema);
Run Code Online (Sandbox Code Playgroud)