Mongoose:创建用户架构和 Todo 架构

jus*_*Dan 2 mongoose node.js

各位下午好。我一直致力于构建一个小型联系人列表应用程序,我想使用猫鼬来存储数据和会话项目。我以前从未使用过 mongoose,所以我选择了一个快速的 PDF 来跟随。大多数 if 都是有意义的,我能够将一些东西拼凑在一起并运行身份验证以使用UserSchema. 效果很好。我现在有点迷失的是如何使用 mongoose 创建第二个名为ContactSchema. 我以为我会为每个模式创建 2 个不同的文件(user.js 和 contact.js),但是当我尝试这样做时,当我在 mongo 终端中运行时,我仍然看不到联系人集合show collections,而且我也不会抛出任何错误。当我在 robomongo 中检查时也是如此。

我的服务器文件像这样调用我的所有模型:

require('./server/models').connect(config.dbUri);
// config.dbUri -> "dbUri": "mongodb://localhost/react_app"
Run Code Online (Sandbox Code Playgroud)

我的 user.js 文件:

const mongoose = require('mongoose');
const bcrypt = require('bcrypt');

// define the User model schema
const UserSchema = new mongoose.Schema({
  email: {
    type: String,
    index: { unique: true }
  },
  password: String,
  name: String
});

...bcrypt code here

module.exports = mongoose.model('User', UserSchema);
Run Code Online (Sandbox Code Playgroud)

我的 contact.js 文件:

const mongoose = require('mongoose');

// define the Contact model schema
const ContactSchema = new mongoose.Schema({
  content    : String,
  updated_at : Date
});

module.exports = mongoose.model('Todo', ContactSchema);
Run Code Online (Sandbox Code Playgroud)

我的 index.js 文件需要 user.js 和 contact.js 架构:

const mongoose = require('mongoose');

module.exports.connect = (uri) => {
  mongoose.connect(uri);

  // plug in the promise library
  mongoose.Promise = global.Promise;

  mongoose.connection.on('error', (err) => {
    console.error(`Mongoose connection error: ${err}`);
    process.exit(1);
  });

  require('./user');
  require('./contact');
};
Run Code Online (Sandbox Code Playgroud)

index.js、user.js 和 contact.js 文件都位于我的 models 文件夹内。我可以让它在控制台中正常运行,但我仍然没有在 mongo 端看到联系人集合。我走在正确的轨道上吗?一如既往,我们非常感谢任何帮助或相关帖子。为了获得更好的想法,这里是完整项目的 github 链接: https: //github.com/DanDeller/Base。再次感谢你们。

小智 7

您是否已将任何数据添加到联系人集合中?

Mongoose 是一种“ORM”,它提供映射到 MongoDB 集合的抽象模式。但是,这些模式仅存在于使用 mongoose 的应用程序的上下文中。MongoDB 没有模式的概念。这是一个相当愚蠢的文档存储。它不像 SQL,在 ORM 中定义某些内容通常会在数据库中创建一个物理表。猫鼬提供的模式纯粹是抽象的,仅在应用程序级别强制执行。

除非您告诉应用程序根据您的联系人模式创建记录并指示 mongoose 将其保存到存储中,否则 mongo 将不知道联系人。