我想将路径和中间件从我的主 app.coffee 文件中分离出来。 (我使用 Express.js 。)
此文件已广泛 ,并且不再容易浏览。
如何将它们放入单独的文件中以便彼此了解?
使用中间件的路由示例:
app.post '/signup', signup.inputsOK, signup.userIsNew, signup.createUser, allowUser, (req, res) ->
res.redirect '/'
每个中间件功能应该适用于每个路由,并且每个路由都应该在主app.coffee文件中可用!
感谢您的想法!
答案 0 :(得分:1)
请记住,Express中间件只是功能,所以只要需要它就可以使用它。
user_routes.coffee
hello_user = ( req, res, next ) ->
res.json {"message": "hi"}
module.exports = {
hello_user : hello_user
}
app.coffee
user_routes = require './user_routes'
app.post '/signup', signup.inputsOK, signup.userIsNew, signup.createUser, allowUser, user_routes.hello_user
我会做这样的中间件设置:app.coffee文件负责设置中间件和实际业务逻辑功能的路由......然后所有最后一个功能需要做的是所需的实际工作。 (这也使得功能更容易进行单元测试,而不必伪造Express路由)
或者通过一些小工作,您可以分离出路线并让每个文件都执行app.add工作。 (我不喜欢这种方法,但许多应用程序都这样做。)
user_routes.coffee
setupUserRoutes = (app) ->
app.post '/signup', signup.inputsOK, signup.userIsNew, signup.createUser, allowUser, (req, res) ->
res.redirect '/'
module.exports = setupUserRoutes
app.coffee
app = express()
require( './user_routes' )(app)
在这里,您将Express对象传递给您导入的每个新模块。由于您将导出设置为只有一个函数 - 它带有一个参数,即创建的Express对象 - 您可以使用所需的中间件创建路径