我的根文件夹中有一个server.js
,其中包含以下内容。
// server.js
const app = express();
const HomeController = require("./controllers/HomeController");
const UserController = require("./controllers/UserController");
app.use(...)
app.use(...)
app.get('/', HomeController.index);
app.get('/login', UserController.getLogin);
我想在名为routes.js的文件中使用app.get
个端点,所以它看起来像这样:
// routes.js
app.get('/', HomeController.index);
app.get('/login', UserController.getLogin);
当我这样做时,app
,HomeController
和UserController
变为undefined
。
我可以将它们传递给routes.js,如:
require("routes")(app, HomeController, UserController);
但是,它不是未来兼容的,所以如果我创建一个新的控制器,我必须将它们传递到routes.js
文件。
相反,我可以以某种方式告诉routes.js
访问server.js
范围吗?有没有办法通过server.js
访问routes.js
中的变量?
答案 0 :(得分:0)
为什么你没有使用ExpressJS的默认模式。像:
var apiRoutes = require('./api_server/routes/api');
app.use('/api', apiRoutes);
... /路线/ api.js:
var express = require('express');
var router = express.Router();
var loginCtrl = require('../controllers/auth/login');
router.post('/authenticate', loginCtrl.login);
router.post('/resetAdminPassword', loginCtrl.resetAdmin);
// router.get('/tieba/:id', tiebaCtrl.one);
module.exports = router;