获取 TypeError:path.split 不是 Mongoose 中的函数

Posted

技术标签:

【中文标题】获取 TypeError:path.split 不是 Mongoose 中的函数【英文标题】:Getting TypeError: path.split is not a function in Mongoose 【发布时间】:2021-02-08 11:22:30 【问题描述】:

错误:

node_modules\mongoose\lib\schema.js:1160 常量子路径 = path.split(/./g); ^

TypeError: path.split 不是函数 在 Schema.hasMixedParent (C:\Users\Travis\Desktop\Cop_Botv1\Cop_Site_Discord\node_modules\mongoose\lib\schema.js:1160:25) 在 Schema.path (C:\Users\Travis\Desktop\Cop_Botv1\Cop_Site_Discord\node_modules\mongoose\lib\schema.js:636:23) 在 C:\Users\Travis\Desktop\Cop_Botv1\Cop_Site_Discord\node_modules\mongoose\lib\document.js:2410:39

这个帖子发生了错误。

    router.post('/', function(req, res, next) 
    let id = 'sdflksjdflksd'; 
    let activated = false;
    let end_date = '10/2'; 
    let email = 'random@gmail.com'
    let key = key_id: id, end_date: end_date, activated: false, email: email 
    Keys.create(key, (err, result) => 
        if(err) console.log(err); 
        else 
            console.log(result); 
        
    )
)

架构文件

const mongoose = require('mongoose'); 

let keySchema = new mongoose.Schema(
    key_id: String, 
    end_date: String, 
    activated: Boolean,
    email: String 
); 

module.exports = mongoose.model("Keys", keySchema); 

错误在库中,不确定路径指的是什么。

【问题讨论】:

【参考方案1】:

确保检查模型挂钩,例如“pre”、“save”等,我遇到了同样的问题,

我在错误的地方使用了 this 关键字作为所有属性的快捷方式 [懒惰]

错误

objectSchema.pre('save', async function()

     if(this.isModified(this)) do something() 

);

解决方案

objectSchema.pre('save', async function()

    if(this.isModified('property')) do something()

);

我希望这个示例可以帮助您找到自己的问题解决方案。

【讨论】:

以上是关于获取 TypeError:path.split 不是 Mongoose 中的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 TypeError: path.split is not a function

获取未捕获的类型错误:path.split 不是反应中的函数

if(str(saved_path).split('.')[1].lower() != 'gif'): IndexError: list index out of ra

os.path.split()os.path.realpath()和os.path.join()

python中的os.path.join, os.path.splitext, os.path.split, split()函数用法

解决excel路径可配置问题