У меня есть этот код (который работает отлично), который я позаимствовал из интернет-ресурса:Использование требуют без экспорта
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");
});
, но как вы можете видеть, что нет module.exports
нигде в db.js
или cache.js
файлов! Когда я google это, чтобы понять, как это работает, примеры всегда говорят о module.exports
и require
вместе.
Вопросы
Может кто-нибудь объяснить, как требует работы, когда используется самостоятельно, как это?
Как я могу сделать кэш/соединение Redis доступны, так что он может быть использован в моем
userRoutes
файл, используя что-то вроде:var userRoutes = require('./routes/user')(redis);
Вы можете определенно экспортировать соединение mongoose для использования в других модулях в качестве ссылки на БД. Просто Google это (например: экспорт mongoose соединение), и вы найдете множество примеров. –
Мой код работает нормально, и я могу запросить базу данных из файла маршрутов, но я не понимаю, как это сделать! – tommyd456
Отличный вопрос! Спасибо за вопрос. Это помогло мне понять многое и сделать мою работу! – kirtan403