He definido y exportado un esquema con algunos valores predeterminados para mi base de datos. ¿Cómo accedo a los valores predeterminados del esquema desde otro módulo?
const mySchema = new Schema({ property: { type: String, enum: ['a', 'b', 'c', ...] }, ... }); module.exports = mongoose.model('Alpha', mySchema);Como ejemplo, me gustaría recorrer los valores de la matriz de enumeración y console.log(array[i]).
let alphabet = mySchema.property.enum alphabet.forEach(letter => console.log(letter))No es posible acceder a los valores de enum predeterminados desde el propio esquema mongoose. Deberá almacenar las enums en una variable separada y usarla en su modelo. Luego exporte esa variable y utilícela donde sea necesario.
export enum PropertyEnums { a = "a", // set value of enum a to "a" else it will default to 0 b = "b", c = "c", ... } const mySchema = new Schema({ property: { type: String, enum: Object.values(PropertyEnums), // equivalent to ["a", "b", "c", ...] default: PropertyEnums.a // if you want to set a default value for this field }, ... }); module.exports = mongoose.model('Alpha', mySchema);Luego, simplemente importe la enumeración donde se necesita así:
import { PropertyEnums } from "./yourSchemaFile.js" let alphabet = Object.values(PropertyEnums) alphabet.forEach(letter => console.log(letter))Puede definir como a continuación:
export enum Props { A = 'A', B = 'B' }en esquema:
property: { type: String, enum: Props },para el acceso:
for (let item in Props) { if (isNaN(Number(item))) { console.log(item); } }