【问题标题】:Use Schemas from mongoose with Nextjs and mongodb使用来自 mongoose 的 Schemas 和 Nextjs 和 mongodb
【发布时间】:2022-01-02 21:44:53
【问题描述】:

我最近开始做一个项目,我正在为这个项目第一次尝试 NextJS。

过去我已经用纯 ReactJS 编写了一个网站,并使用 mongoose 连接到我的 mongodb。

现在对于 NextJS,我只能找到不使用“mongoose”而是使用“mongodb”的解释和教程。

我觉得这很复杂,因为你没有像猫鼬那样的“模式”。 (或者我只是错过了什么)

有没有办法为mongodb-module实现“mongoose.schema”-Way?

或者这两种方式中哪一种是“最佳实践”方式?

感谢您的建议。

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: node.js reactjs mongodb mongoose next.js


【解决方案1】:
  1. 您创建架构

    import mongoose from 'mongoose';
    
    var Schema = mongoose.Schema;
    
    var user = new Schema({
     name: {type: String, required: true},
     email: {type: String, required: true},
     password: {type: String, required: true},
    
    });
    
    mongoose.models = {};
    
    var User = mongoose.model('User', user);
    
    export default User;
    
  2. 你将你的 shema 添加到 /api/yourRequest

      var user = new User({
        name,
        email,
        password: password,
      });
    
      var usercreated = await user.save();
    
  3. 如果有问题,你检查docs

我觉得这很复杂,因为你没有像在 mongoose 中那样的“模式”。 - 许多测试项目不使用 mongoose 模式,因为复杂的“pre-思维”。这意味着您需要在真正编码之前“定义”所有可能的参数和字段。还有嵌套模式和特殊类型的问题。

因此,如果您之前定义了“项目需求和数据结构”,则可以毫无问题地使用 mongoose 模式

附:想象一下,您开始使用下一个 mongoose 模式开发和填充数据库:

var user = new Schema({
    name: {type: String, required: true},
    email: {type: String, required: true},
    password: {type: String, required: true},
    test: {type: String, required: false}
});

然后您注意到test 必须是true

在这种情况下,您需要重新处理数据库中 test 为 null 的所有数据,否则您可能会遇到数据错误。这是一个简单的“错误”案例,但假设您有其他模型架构而不是测试 - 这就是您头疼的地方。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2011-10-26
    • 2016-01-21
    • 1970-01-01
    • 2022-12-09
    相关资源
    最近更新 更多