我有这样的代码(这工作得很好),我已经从一个在线资源借来的:以这种方式使用时使用要求不出口
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