익스프레스/몽구스 응용 프로그램을 구조화하여 스키마, 모델, 경로 및 해당 경로에 도달했을 때 호출되는 함수를 사용할 수 있도록하려면 어떻게해야합니까? 내가 오류가 app.get('/api/v1/users', UserSchema.userlist(db)); TypeError: Cannot call method 'userlist' of undefined
입니다 : 익스프레스/몽구스 응용 프로그램의 구조
// setup
var express = require("express");
var app = express();
var mongoose = require("mongoose");
app.db = mongoose.connect('mydb'));
// this is the bit I am not sure about
var UserSchema = require('./modules/users/schema')(app, mongoose);
var routes = require('./modules/users/routes')(app, mongoose, UserSchema);
// listen
app.listen(3000);
모듈/사용자/schema.js
exports = module.exports = function(app, mongoose)
{
var UserSchema = mongoose.Schema(
{
username: { type: String, required: true },
password: { type: String }
});
var UserModel = mongoose.model('User', UserSchema, 'users');
// it looks like this function cannot be accessed
exports.userlist = function(db)
{
return function(req, res)
{
UserModel.find().limit(20).exec(function(err, users)
{
if(err) return console.error(err);
res.send(users);
});
};
};
}
모듈/사용자/routes.js
function setup(app, mongoose, UserSchema)
{
var db = mongoose.connection;
// get all users
app.get('/api/v1/users', UserSchema.userlist(db)); // this function cannot be accessed
// get one user
app.get('/api/v1/users/:id', UserSchema.userone(db));
// add one new user
app.post('/api/v1/users', UserSchema.addone(db));
}
// exports
module.exports = setup;
는 PS
server.js
(routes.js).