.find 不是函数错误

新手上路,请多包涵

我正在开发一个节点 js 休息服务器并且我的架构查询有问题。当我到达终点时,我得到错误 TypeError: user.find is not a function

以下是我的 user.js 文件

var {mongoose} = require('../../dbcore/mongoose');
var Schema = mongoose.Schema;

module.exports = mongoose.model('User',new Schema( {

    basicId: Schema.ObjectId,

    activePurchaseIDs: {
        type: [Schema.ObjectId],
        default: []
    },

    activeOrderIDs: {
        type: [Schema.ObjectId],
        default: []
    },

    paymentOptionIDs: {
        type: [Schema.ObjectId],
        default: []
    },

    addressIDs: {
        type: [Schema.ObjectId],
        default: []
    },

    interestIDs: {
        type: [Schema.ObjectId],
        default: []
    }

}));

这是导入/需要它的地方。

 var URLS = require('./urls');
var User = require('../schemas/user/user');

function init(app,mongoose) {

    app.get(URLS.USERS_URL,(req,res)=>{

        var user = new User({});

        user.find().then((users)=>{
            res.send({users});
        },(err)=>{
            res.status(400).send(err);
        });

    });

}

module.exports = init;

我在编写这段代码时遵循了一个教程,我希望它能在我一步一步地遵循教程的过程中工作。

原文由 Omer Ozer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 939
2 个回答

当您调用 var user = new User({}) 时,您正在创建一个基于 User 模型的新 MongoDB 文档并将其分配给 var user

单个 user 文档没有 find() 函数,但是你的 User 模型有。

 var user = new User({});
User.find().then(...);

原文由 David Z. 发布,翻译遵循 CC BY-SA 4.0 许可协议

app.get(URLS.USERS_URL, async (req,res)=>{

    const userList = await User.find();

    if(!userList) {
      res.status(500).json({success: false});
    }
    res.send(userList);

});

原文由 MEAbid 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题