我有這樣的代碼(這工作得很好),我已經從一個在線資源借來的:以這種方式使用時使用要求不出口
var express = require('express');
var bodyParser = require('body-parser');
var logger = require('morgan');
var app = express();
require('./init/db');
require('./init/cache'); //Bring in Redis
//Define Routes
var userRoutes = require('./routes/user');
module.exports = app;
我不明白該位是「需要」 ?這裏是它帶來的文件:
//db.js
var mongoose = require('mongoose');
var dbURI = <theURI>;
mongoose.connect(dbURI);
// CONNECTION EVENTS
mongoose.connection.on('connected', function() {
console.log('Mongoose connected successfully');
});
這是我的Redis連接相同:
//cache.js
var redis = require("redis");
var redisClient = redis.createClient(process.env.CACHE_PORT, process.env.CACHE_URL);
redisClient.auth(process.env.CACHE_PASS);
redisClient.on("ready", function() {
console.log("Cache is connected");
});
但你可以看到有在db.js
或cache.js
文件中沒有任何地方module.exports
!當我谷歌瞭解它是如何工作的例子總是談論module.exports
和require
在一起。
問題
有人能解釋如何像這樣對自己使用時需要的作品?
我怎樣才能使高速緩存/ Redis的可用連接,以便它可以在我的
userRoutes
文件中使用像使用:var userRoutes = require('./routes/user')(redis);
您可以絕對導出貓鼬連接,以便在其他模塊中用作對數據庫的引用。只是谷歌它(例如:出口貓鼬連接),你會發現很多的例子。 –
我的代碼工作正常,我可以從我的路由文件查詢數據庫,但我不明白! – tommyd456
優秀的問題!謝謝你的慰問。它幫助我瞭解了很多事情並完成了我的工作! – kirtan403