【发布时间】:2019-03-18 10:38:13
【问题描述】:
我正在尝试以最佳方式构建我的 Express 应用程序的文件。路由器模块让我很困惑。
据我所知,所有查询都应该在模型文件夹中。
这是我当前所需的设置(不适用于我的 query.js 和 query2.js 文件,我得到的错误是“应用程序”未定义)。 当我将查询代码(来自 query.js 文件)直接放在我的 App.js 文件中时,它可以正常工作。
我的设置也适用于我的电子邮件路由。
如何解决?
这是我的项目结构:
这里是我的文件内容:
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);
});
【问题讨论】: