我正在尝试使用index.js文件将我的大脑包裹起来,以便在Express-app中导出我的路线。
./ app.js
const server = require('express'),
app = server(),
port = process.env.PORT
require('./routes/index')(app)
app.listen(port)
./路由/ index.js
function routes(app) {
require('./test')(app)
}
module.exports = routes
./路由/ test.js
function test(app) {
app.get('/', function (req, res) {
console.info('test')
res.end('Hello, World!')
})
}
module.exports = test
现在,当然,当我执行./app.js时,我收到错误告诉我require( ... ) is not a function on ./routes/index.js:2
但我似乎无法围绕这个逻辑包围我的大脑。不是我的错误的原因,而是在将app
传递给模块时如何在此结构中将模块绑定在一起。
这种结构背后的想法(如果不是很明显)是创建一个系统,通过在属于每个模块的索引文件中添加和删除模块,可以在应用程序中添加和删除模块,然后只需要每个模块集群的索引(例如路由)。
答案 0 :(得分:0)
出于某种原因导出命名函数,如
function someName(parameter) {
require('./whatever')(parameter)
}
module.exports = someName
不会工作......
但是,导出匿名函数确实有效:
module.exports = function (parameter) {
require('./whatever')(parameter)
}