Я пытаюсь наиболее оптимально структурировать файлы моего приложения Express. И модуль Router меня смущает.
Насколько я знаю, все запросы должны быть в папке моделей.
Это моя текущая желаемая настройка (которая не работает для моих файлов query.js и query2.js, ошибка, которую я получаю, заключается в том, что «Приложение» не определено).
Когда я помещаю код запроса (из файла query.js) в файл App.js напрямую, он работает, однако.
Кроме того, мои настройки работают правильно для маршрутизации электронной почты.
Как исправить?
Вот моя структура проекта:
project_structure
Вот содержимое моих файлов:
APP.JS
const express = require('express');
const request = require('request');
const requestPromise = require('request-promise');
const bluebird = require('bluebird');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
app.use(cors());
const router = require('./routes');
app.use(router);
function App(req, res) {
if (!req.url) {
req.url = '/';
req.path = '/';
}
return app(req, res);
}
module.exports.my_server = App;
INDEX.JS (в папке маршрутов)
const express = require('express');
const router = express.Router();
const config = require('../config');
let email = require('../models/email');
const query = require("../models/query");
const query2 = require("../models/query2");
router.post('/api/subscribe', function (req, res) {
const data = {
subscribed: true,
address: req.body.email,
};
...
module.exports = router;
QUERY.JS (в папке моделей)
app.get('/query', function(req, res, next) {
request({
uri: 'https://queryapi.api/search?q=stuff&api-key=api_key',
qs: {
api_key: 'api_key',
}
}).pipe(res);
});