各位下午好。我一直致力于构建一个小型联系人列表应用程序,我想使用猫鼬来存储数据和会话项目。我以前从未使用过 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 将不知道联系人。
| 归档时间: |
|
| 查看次数: |
7051 次 |
| 最近记录: |