定义mongoose和纲要唯一的

您好,我正在开发与express和mongodb的nodejs应用程序。所以我必须在我所有的路由js中定义mongoose和模式来使用mongo和模式。 我只想定义他们。 我是node.js的新手,请耐心等待。 我的项目结构:

在这里输入图像说明

我的route.js如下所示:

var routes = function (app) { app.locals.error=null; app.get('/login', function (req, res) { return res.render(__dirname + "/views/login", { title: 'Giriş', stylesheet: 'login' }); }); var mongoose = require('mongoose'); mongoose.connect("mongodb://localhost/fuatblog"); var UserSchema = new mongoose.Schema({ name: String, email: String, password: String, age: Number }), Users = mongoose.model('Users', UserSchema); app.post('/sessions', function (req, res) { console.log(req.body.login.email); console.log(req.body.login.password); console.log(req.body.login.rememberMe); Users.find({ email: req.body.login.email, password: req.body.login.password }, function (err, docs) { if (! docs.length) { // no results... console.log('User Not Found'); res.status(400); return res.render(__dirname + "/views/login", { title: 'Giriş', stylesheet: 'login', error: 'Kullanıcı adı veya şifre yanlış' }); } console.log('User found'); req.session.email = docs[0].email; console.log(req.session.email); return res.redirect('/Management'); }); }); }; module.exports = routes; 

和我的server.js(app.js)

 /** * Module dependencies. */ ////Mongoose eklendi var express = require('express'), mongoose= require('mongoose'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); ////Cookie için eklendi. app.use(express.cookieParser()); ////Session desteği için eklendi app.use(express.session({secret: 'asdfsdfsafasdfasdfasdf'})); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); ////Put ve Delete mothodları için app.use(express.methodOverride()); ////Requeestleri ayrıştırmak için kullanılıyor app.use(express.bodyParser()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } ////Helpers //require('./apps/helpers')(app); //Routes require('./apps/authentication/routes')(app) require('./apps/blog/routes')(app) require('./apps/management/routes')(app) http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

我假设你的意思是你只想定义一个Schema。

我喜欢做的是初始化所有的模型,我打算在服务器启动和build立mongodb连接时使用。

一个理想的目录结构是这样的:

 mongodb --schemas ----user.js --models.js 

你会把你的模式放在模式文件夹中,比如你的用户模型:

 (user.js) var mongoose = require('mongoose'); var Schema = mongoose.Schema; module.exports = function() { var UserSchema = new mongoose.Schema({ name: String, email: String, password: String, age: Number }); mongoose.model("User", UserSchema); }; 

在models.js中,您将拥有用于初始化模式目录中每个模式模型的代码。

 (models.js) exports.initialize = function() { require("fs").readdirSync(__dirname + "/schemas").forEach(function(file) { require('./schemas/' + file)(); }); }; 

在你的app.js文件中,你会做这个调用来初始化你所有的模式后,你build立你的连接mongoose:

 require($pathToYourModelsJsFile).initialize(); 

之后,你们都准备好使用你的模型! 所有你需要做的,当你想要使用它们是:

 var mongoose = require('mongoose'); var User = mongoose.model('User'); // Do work User.find();