Javascript 在多个路由之间共享数据库连接?
我根据的示例创建了一个非常简单的应用程序。我想用驱动程序启动此应用程序。本例仅列出Javascript 在多个路由之间共享数据库连接?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我根据的示例创建了一个非常简单的应用程序。我想用驱动程序启动此应用程序。本例仅列出用户和小猫 var express = require('express'); var app = express(); var mongoose = require('mongoose'); var user = require('./user'); var kitten = require('./kitten'); // Connect MongoDB mongoose.connect('mongodb://
用户
和小猫
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var user = require('./user');
var kitten = require('./kitten');
// Connect MongoDB
mongoose.connect('mongodb://localhost/mongoose');
// Express config here
...
// User
app.all('/users', user.list);
// Kitten
app.all('/kittens', kitten.list);
// Mongoose connection
var db = mongoose.connection;
db.once('open', function callback () {
var kittySchema = mongoose.Schema({ name: String });
});
if (!module.parent) {
app.listen(3000);
console.log('Express started on port 3000');
}
在我看来,在启动时连接到Mongo数据库比每次请求都要明智
但是我如何与
用户
和小猫
路线共享猫鼬的连接呢?我知道如果我不需要共享两者之间的连接,我可以直接连接到我的user.js
和kitten.js
代码中的数据库。在node.js
中当你需要一个文件时,你只需运行该文件中的代码一次。这意味着你可以通过关闭来存储东西
foobardb.js
(function(){
"use strict"; // always nice to have
var mongoose = require('mongoose'),
databaseConnection;
module.exports = function() {
if ( !databaseConnection ) {
mongoose.connect('mongodb://localhost/mongoose')
databaseConnection = mongoose.connection;
}
(...)
};
})();
databaseConnection
将与所有require(“foobardb.js”)共享代码>你知道吗