Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grommet: TypeError: Cannot read property 'modelSchemas' of undefined

I'm using grommet version 1.3.4 and trying to use mongodb with node js and express. When I run npm install I get the following TypeError:

/home/jorge/Desktop/crud-app/node_modules/mongoose/lib/index.js:373
  if (!this.modelSchemas[name]) {
            ^

TypeError: Cannot read property 'modelSchemas' of undefined
    at Mongoose.model (/home/jorge/Desktop/crud-app/node_modules/mongoose/lib/index.js:373:13)
    at Object.<anonymous> (/home/jorge/Desktop/crud-app/dist-server/models/person.model.js:18:39)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/home/jorge/Desktop/crud-app/dist-server/controllers/person.controller.js:9:15)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Module.require (internal/modules/cjs/loader.js:650:17)
[nodemon] app crashed - waiting for file changes before starting...

This is the code I used for the Person schema:

import { Schema, model } from 'mongoose';

const PersonSchema = new Schema({
    name: String,
    lastName: String,
    age: Number,
    gender: String,
    updatedAt: { type: Date, default: Date.now },
    status: Boolean,
});

export default model('Person', PersonSchema);

And babel transpiled it into this:

'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _mongoose = require('mongoose');

var PersonSchema = new _mongoose.Schema({
    name: String,
    lastName: String,
    age: Number,
    gender: String,
    updatedAt: { type: Date, default: Date.now },
    status: Boolean
});

exports.default = (0, _mongoose.model)('Person', PersonSchema);
//# sourceMappingURL=person.model.js.map

Apparently it is failing at the last line where I export the model. I'm not very familiar with either mongodb and grommet, so any ideas on what I'm doing wrong?

like image 772
Jorge Hernandez Avatar asked Jan 20 '26 14:01

Jorge Hernandez


1 Answers

apparently import { Schema, model } from 'mongoose'; doesn't work... I had to use this instead:

import mongoose from 'mongoose';

const PersonSchema = new mongoose.Schema({
    name: String,
    lastName: String,
    age: Number,
    gender: String,
    updatedAt: { type: Date, default: Date.now },
    status: Boolean,
});

export default mongoose.model('Person', PersonSchema);
like image 58
Jorge Hernandez Avatar answered Jan 23 '26 02:01

Jorge Hernandez