导出模型函数(Express和Mongoose)时遇到问题。

| 我一直在查看代码(https://github.com/cmarin/MongoDB-Node-Express-Blog)来学习NodeJS,Express,Mongoose,但是从我的\'导入\'Poll \'函数时遇到了麻烦models.js \”文件,特别是\'save \'函数。 我收到以下错误:
500 TypeError: Object function (){} has no method \'save\'
它发生在我的app.js的第54行。我无法保存新的投票,因为它找不到该功能: https://github.com/kelper/Poll/blob/master/app.js 这是我的模型文件,保存功能在第62行: https://github.com/kelper/Poll/blob/master/models.js 另一个快速问题。如何排除文件被提交?我一直将交换文件等提交给我的仓库。 如果您发现我的代码还有其他问题,请告诉我。我知道有人提到我的命名约定令人困惑。我应该如何命名变量?     
已邀请:
        PollModel是一个函数构造函数,您要创建一个对象。
var PollModel = require(\'./models\').PollModel;
var pollModel = new (require(\'./models\').PollModel);
是对的。     
        看起来您已经使用原型构建了一个代理对象。在这种情况下,您将不得不“更新”一个实例以使用它,如Raynos所提到的。 我认为您所期望的是对象文字提供的内容,而不是原型类。就像是:
module.exports.PollModel = {
  findPolls  : function (callback) { ... },
  findById   : function (id, callback) { ... },
  updateById : function (id, body, callback) { ... }
}
我个人直接使用猫鼬模式。 Mongoose使用Schema对象对特定模型进行查询,但是如果您实际上要创建和保存该模式类型的新对象,则需要新建一个对象。
// Assume you\'ve exposed the mongoose Poll schema directly
var Poll = require(\'./models\').Poll;

// Create a new instance
var instance = new Poll();

// Valid
instance.save();

// Not valid
instance.find(function(err, docs){});

// Valid
Poll.find(function(err, docs){});

// Not valid
Poll.save();
    

要回复问题请先登录注册