大家下午好。我一直在努力构建一个小的联系人列表应用程序,我想使用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"
我的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);
我的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);
我的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');
};
index.js,user.js和contact.js文件都在我的models文件夹中。我可以在控制台中运行没有错误,但我仍然没有在mongo端看到联系人集合。我在这里走在正确的轨道上吗?一如既往,任何帮助或相关的帖子都非常感谢。为了更好地了解,这里是完整项目的github链接:https://github.com/DanDeller/Base。再次感谢你们。
答案 0 :(得分:4)
您是否已将任何数据添加到联系人集合中?
Mongoose是一种'ORM',提供映射到MongoDB集合的抽象模式。但是,这些模式仅存在于使用mongoose的应用程序的上下文中。 MongoDB没有模式的概念。这是一个相当笨的文档存储。它与SQL不同,在ORM中定义内容通常会在数据库中创建物理表。 mongoose提供的模式纯粹是抽象的,只能在应用程序级别强制执行。
在您告诉应用程序根据您的联系方式创建记录并指示mongoose将其保留到商店之前,mongo将不知道联系人。