node.js - 索环:类型错误:无法读取未定义的属性 'modelSchemas'

标签 node.js mongodb mongoose grommet

我正在使用 grommet 版本 1.3.4 并尝试将 mongodb 与 Node js 和 Express 一起使用。当我运行 npm install 时,出现以下 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...

这是我用于 Person 架构的代码:

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);

babel 将其转译为:

'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

显然,我导出模型的最后一行失败了。我对 mongodb 和 grommet 都不是很熟悉,所以对我做错了什么有什么想法吗?

最佳答案

显然 import { Schema, model } from 'mongoose'; 不起作用......我不得不使用这个:

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);

关于node.js - 索环:类型错误:无法读取未定义的属性 'modelSchemas',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51291333/

相关文章:

javascript - 如何向特定用户推送通知 Node + AngularJS + Laravel

javascript - 从控制台中删除空行

php - 将 Mongo 游标正确解析为 PHP

javascript - 何时在 Mongoose 中使用 new ObjectId ("string-id")而不是 ObjectId ("string-id")?

typescript - 我如何使用 typescript 扩展 Mongoose 查询?

node.js - Mongoose ODM : NumberInt is not defined

node.js - 带有 MySQL/Mongo 后端的 Next.js

javascript - Mongoose:查找子文档并修改它的数组?

mongodb - Golang/mgo : How can I store Date (not ISODate) in mongodb?

node.js - NodeJS MongoDB UNIX 套接字连接