ho questo codice (che funziona perfettamente), che ho preso in prestito da una risorsa in linea:Utilizzando richiedere senza esportazione
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;
Il bit che non capisco è "richiedono" quando viene utilizzato in questo modo ? Ecco il file che porta in:
//db.js
var mongoose = require('mongoose');
var dbURI = <theURI>;
mongoose.connect(dbURI);
// CONNECTION EVENTS
mongoose.connection.on('connected', function() {
console.log('Mongoose connected successfully');
});
E 'lo stesso con la mia connessione 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");
});
ma come potete vedere non v'è alcuna module.exports
ovunque nei file db.js
o cache.js
! Quando google questo per capire come funziona, gli esempi parlano sempre di module.exports
e di require
insieme.
Domande
Qualcuno potrebbe spiegare come funziona richiede se usato da solo in questo modo?
Come posso fare il collegamento cache/Redis disponibili in modo che possa essere utilizzato nel mio
userRoutes
file usando qualcosa come:var userRoutes = require('./routes/user')(redis);
È possibile esportare la connessione della mangusta in modo che possa essere utilizzata in altri moduli come riferimento per DB. Basta Google (ad esempio: esportazione di connessione mangusta) e troverai un sacco di esempi. –
Il mio codice funziona correttamente e posso interrogare il database dal mio file di rotte ma non capisco come! – tommyd456
Ottima domanda! Grazie per avermelo chiesto. Mi ha aiutato a capire molte cose e a fare il mio lavoro! – kirtan403