Model view controller Node.JS/Mongoose/Express->;对象没有方法”;findAll“;
我正在尝试将一个方法从model.js传递到route.js。。我的路线没有找到任何方法!我搜索了一个解决方案,测试了很多代码,但没有成功 我是Node的初学者,如果这是一个愚蠢的错误,我很抱歉 这是我代码的一部分:Model view controller Node.JS/Mongoose/Express->;对象没有方法”;findAll“;,model-view-controller,node.js,methods,express,mongoose,Model View Controller,Node.js,Methods,Express,Mongoose,我正在尝试将一个方法从model.js传递到route.js。。我的路线没有找到任何方法!我搜索了一个解决方案,测试了很多代码,但没有成功 我是Node的初学者,如果这是一个愚蠢的错误,我很抱歉 这是我代码的一部分: Route.js var mongoose = require('mongoose'); var membersModel = new require('../models/MemberModel'); // Member list page exports.list =
Route.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 });
});
};
MemberModel.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;
谢谢你花时间帮助我。
如果你想要其他信息,告诉我 我认为您在这里遇到了一些问题:
MemberSchema.methods
(而不是.method
)上定义李>
findAll
这样返回实例的方法应该定义为模式的静态方法(在MemberSchema.statics上)
而不是实例方法MyModel
,而不是像现在这样的新MyModel
实例<代码>模块.exports=MyModel代码>route.js
不应在其require
中使用new
,因为您希望MyModel类可用于该文件,而不是其实例我认为您在这里有一些问题:
MemberSchema.methods
(而不是.method
)上定义李>
findAll
这样返回实例的方法应该定义为模式的静态方法(在MemberSchema.statics上)
而不是实例方法MyModel
,而不是像现在这样的新MyModel
实例<代码>模块.exports=MyModel代码>route.js
不应在其require
中使用new
,因为您希望MyModel类可用于该文件,而不是其实例对于find函数,语法通常为
<modelname>.find({conditions},function(err, results){
//use the results
});
对于find函数,语法通常为
<modelname>.find({conditions},function(err, results){
//use the results
});
const articleSchema = {
title: String,
content: String
};
// to create a new model named Article
const Article = mongoose.model("article",articleSchema);