TypeError(`无效的架构配置:\`$name\` 不是 ` +

Posted

技术标签:

【中文标题】TypeError(`无效的架构配置:\\`$name\\` 不是 ` +【英文标题】:TypeError(`Invalid schema configuration: \`$name\` is not ` +TypeError(`无效的架构配置:\`$name\` 不是 ` + 【发布时间】:2022-01-04 04:20:48 【问题描述】:

项目链接:https://github.com/k4u5hik/node-express-course

我正在尝试使用 populate.js 使用 mongoose 将 products.json 中的数据自动导入到我的 MongoDB 数据库中。架构在 product.js 中。

product.js

const mongoose = require('mongoose')

const productSchema = new mongoose.Schema(
  name: 
    type: String,
    required: [true, 'product price must be provided'],
  ,
  price: 
    type: Number,
    required: [true, 'product price must be provided'],
  ,
  featured: 
    type: Boolean,
    default: false,
  ,
  rating: 
    type: Number,
    default: 4.5,
  ,
  createdAt: 
    type: Date,
    default: Date.now(),
  ,
  company: 
    type: String,
    enum: 
      values: ['ikea', 'liddy', 'caressa', 'marcos'],
      message: 'VALUE is not supported',
    ,
    // enum: ['ikea', 'liddy', 'caressa', 'marcos'],
  ,
)

module.exports = mongoose.model('Product', productSchema)

填充.js

require ('dotenv').config()

const connectDB = require('./db/connect')
const Product = require('./models/product')

const jsonProducts = require('./products.json')

const start = async () => 
    try 
        await connectDB(process.env.MONGO_URI)
        await Product.deleteMany()
        await Product.create(jsonProducts)
        console.log('Products created or updated on database')
        process.exit(0)
     catch (error) 
        console.log(error);
    


start()

终端错误

kaushik@Madhuras-Air 04 - Practice % node populate
/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/node_modules/mongoose/lib/schema.js:1044
    throw new TypeError(`Invalid schema configuration: \`$name\` is not ` +
    ^

TypeError: Invalid schema configuration: `String` is not a valid type at path `name`. See bit.ly/mongoose-schematypes for a list of valid schema types.
    at Schema.interpretAsType (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/node_modules/mongoose/lib/schema.js:1044:11)
    at Schema.path (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/node_modules/mongoose/lib/schema.js:684:27)
    at Schema.add (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/node_modules/mongoose/lib/schema.js:536:14)
    at new Schema (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/node_modules/mongoose/lib/schema.js:132:10)
    at Object.<anonymous> (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/models/product.js:3:23)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/kaushik/WebstormProjects/node-express-course/04 - Practice/populate.js:4:17)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

我已经问过我的导师,他能够在他的计算机上本地运行我的代码,没有任何问题。他说的问题不在代码中,我仔细检查了 ENV var,这对我来说似乎也是正确的。我无法找到任何真正的解决方案,并且过去 3 天学习突然停止。

不确定我能做些什么来解决这个问题。非常感谢社区的任何建议。

【问题讨论】:

我也可以在我的电脑上运行它。你的节点版本是多少? 我的节点版本是 v16.13.0。我弄清楚了问题所在。我有最新的猫鼬版本。我将它降级到 5.11.10 版本,这是导师安装的版本,并且可以正常工作。 我尝试使用最新的猫鼬版本,当我删除connect.js 中的连接选项时,它起作用了。 ***.com/questions/68958221/… 【参考方案1】:

我将我的 mongoose 降级到 5.11.10 版本,这是导师安装的版本,并且可以正常工作。认为是最新版本导致了此错误。

编辑:Benny 已经解决了这个问题。

【讨论】:

以上是关于TypeError(`无效的架构配置:\`$name\` 不是 ` +的主要内容,如果未能解决你的问题,请参考以下文章

DBSCAN 返回 TypeError:无效的类型提升

Mongoose 验证错误:架构配置无效

Python - 线性回归 TypeError:无效的类型提升

TypeError:Fetch 参数 None 的类型无效 <type 'NoneType'>

TypeError:“错误”是此函数的无效关键字参数

TypeError:使用 imshow() 绘制数组时图像数据的尺寸无效