Nic*_*w31 1 methods model-view-controller mongoose node.js express
我正在尝试将方法从 model.js 传递到我的 Route.js ..并且我的路线找不到任何方法!我搜索了解决方案并测试了很多代码,但没有成功。
我是 Node 的初学者,如果这是一个愚蠢的错误,我很抱歉。
这是我的代码的一部分:
路由.js
var mongoose = require('mongoose');
var membersModel = new require('../models/MemberModel');
// Member list page
exports.list = function(req, res){
membersModel.findAll(function(err, docs){
res.render('list.jade', { title: 'My Registration App - Member list', member: docs });
});
};
Run Code Online (Sandbox Code Playgroud)
会员模型.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
// Open DB connection
var MemberSchema = new Schema({
id : ObjectId,
title : { type: String, required: true, enum: ['Mr', 'Mrs', 'Mme', 'Miss'] },
lastname : { type: String, required: true, uppercase: true, trim: true},
firstname : { type: String, required: true},
mail : { type: String, trim: true, index: { unique: true, sparse: true } },
date : Date
});
// ...
MemberSchema.method.findAll = function (callback) {
Members.find(function (err, member) {
callback(null, member)
});
};
var conn = mongoose.createConnection('mongodb://localhost/members');
var MyModel = conn.model('Members', MemberSchema);
var instanceMember = new MyModel;
module.exports = instanceMember;
Run Code Online (Sandbox Code Playgroud)
感谢您花时间帮助我。如果您想要其他信息,请告诉我!
我认为你这里有几个问题:
MemberSchema.methods
(not .method
) 上定义。 findAll
应该定义为模式的静态方法(而MemberSchema.statics)
不是实例方法)。MyModel
,而不是new MyModel
像现在这样导出它的实例。 module.exports = MyModel;
route.js
不应new
在其中使用require
,因为您希望 MyModel 类可用于文件,而不是它的实例。 归档时间: |
|
查看次数: |
6163 次 |
最近记录: |