В настоящее время я занимаюсь разработкой веб-сайта, использующего множество маршрутов. В начале все маршруты были реализованы в одном файле ... Чтобы сделать все более ясным, я решил создать несколько файлов, чтобы отделить маршруты ... с помощью модуля Router.Node Express.js переменные доступа из маршрутов, объявленных в отдельных файлах
Например, в моем users.js файл у меня есть:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
и в моем главном app.js файле:
app.use('/users', require('./routes/user');
Это прекрасно работает, но дело в том, что я хотел мой «пользовательский» маршрут для доступа к некоторым переменным, которые были объявлены в файле app.js, до app.use(...)
Я знаю, что могу использовать require
и module.exports
, но некоторые переменные должны быть объявлены в моем приложении app.js только один раз, и я должен получить к ним доступ из маршрутов, которые я включаю.
Кажется, это хорошая идея, но у меня есть много вещей, которые можно получить со всех моих маршрутов. Например, поскольку все они должны получить доступ к моей базе данных mongo, все они должны получить доступ к моим «схемам Mongoose», которые я определил в основном файле app.js. Вы говорите, что я должен отправлять все эти переменные через каждую функцию 'app.use()'? Это не очень удобно, что вы думаете? – FrenchFalcon
@MalteseFalcon Ну, я считаю, вам нужно рассмотреть некоторые изменения в структуре вашего проекта. Если у вас есть маршруты во внешних файлах, зачем хранить Mongoose Schemas внутри основного файла? перемещайте их и в внешние файлы, и требуйте их в файлах маршрутов.Я обновлю свой ответ, чтобы освежить это для будущих посетителей :) –
Да, вот почему я на самом деле пытаюсь это сделать. Но, требуя несколько раз, эти схемы вызывают у меня некоторые ошибки ... Это как я могу объявить их только один раз ... – FrenchFalcon