最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

VSCode module.exports自动完成不工作

运维笔记admin12浏览0评论

VSCode module.exports自动完成不工作

VSCode module.exports自动完成不工作

它采用了最新版本的VSCode和1.30.2它不会看到那些导出模块内部的功能。

这是model.js

var userModel = mongoose.model('userModel', usersSchema);
userModel.isUsernameTaken = isUsernameTaken;
module.exports = userModel;

function isUsernameTaken(username) {
    return userModel.findOne({username:username});
}

在app.js

var userModel = require('./model');

现在,在打字的usermodel。在app.js我应该看到isUsernameTaken的自动完成的建议,但它不存在,也没有任何的模型中声明的功能是“看得见”。但是,如果我键入的确切函数名(区分大小写)。 (例如:userModel.isUserNameTaken(等)),它的工作原理。怎么了 ?

回答如下:

当你说userModel.isUsernameTaken(username),你真正想说的是mongoose.model('userModel', usersSchema).isUsernameTaken(username),其中将返回未定义。你必须做的就是让用户模型与它内部的mongoose.model('userModel', usersSchema)的对象。有点像这样:

var userModel = function () {
    this.model: mongoose.model('userModel', usersSchema),
    this.isUsernameTaken: (username) => {
        return this.model.findOne({username:username});
    }
};

然后,如果你想获得这些属性可以使用,然后var user = new userModel();使用user.isUsernameTaken(/*put username here*/);。或者,如果你想进入单独的模型,你可以这样做:user.model。我希望这回答了你的问题。

发布评论

评论列表(0)

  1. 暂无评论