visual studio代码 - 将模型导入另一个文件后无法识别mongoose(自定义)模式方法

时间:2017-08-16 23:09:17

标签: javascript node.js mongoose 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);
    };

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

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


const userProfile = require('../database/profileModel').userProfile;
userProfile.getProfileItem()

@Neil Lunn以下是它工作的证明 - 因为你是如此肯定。 没有先进的计划

enter image description here

这也没有解决问题。这是使用高级模式的新代码。它识别该文件中的方法但不是在导入它的另一个文件中。

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);

0 个答案:

没有答案