猫鼬不是从变量创建集合名称

问题描述

schema.js

****************************************************************
var nameOfCategory = "hello";
ecomm.createProductCollection = async (categoryName) =>{
  nameOfCategory = categoryName;
}

const productSchema = new mongoose.Schema({
  productName:{
    type: String,require: true
  }
},// { collection: nameOfCategory }
)
ecomm.productModel = new mongoose.model(nameOfCategory,productSchema,nameOfCategory)

*******************************************************************************************
controller.js

await ecomm.createProductCollection("someDynamicName")
await ecomm.productModel.create(product);

-----------------------------------------------------------------------

预期结果:创建了名称为“ someDynamicName”的集合。 实际结果:创建的集合名称为“ hello”。

但是在控制台中打印时,nameOfCategory显示“ someDynamicName”

解决方法

当在函数内部创建productSchema时,此方法有效。 但是仍然找不到有关代码无法正常工作的原因。

schema.js

****************************************************************

ecomm.createProductCollection = async (categoryName) =>{
  nameOfCategory = categoryName;
const productSchema = new mongoose.Schema({
  productName:{
    type: String,require: true
  }
},// { collection: nameOfCategory }
)
ecomm.productModel = new mongoose.model(nameOfCategory,productSchema,nameOfCategory)
}


相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...