记住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 对象 - 您可以使用所需的中间件创建路由