由路由映射到后台的方法不是exports.xxxx = (req,res,next),这个next是个中间件,但是是什么意思呢?
还有我还看到有这样写的req.next(),这又是什么意思?
next就是将流程跳转到下一步。因为express是管道处理,就是这节处理完了,调用next就到下一节。
req.next(),只是req上调用next方法,express的req对象有这个方法吗?
有的
exports.getProjects = (req, res) ->
#console.log req.query
#console.log req.body
mongodb.projectDAO.find {}, (err, projects) ->
return req.next(err) if err
# console.log "projects:", projects
ep = new EventProxy()
ep.after 'got_builds', projects.length, (results)->
res.json results
for project in projects
handle = (project)->
(err, builds) ->
return req.next(err) if err
project.builds = builds || []
# console.log project
ep.emit('got_builds', project)
mongodb.buildDao.getBuilds
istart: 0
ilength:config.project_builds.item_size
query:
name:project.name,
sorter:
No: -1
,
handle(project)
return
这是项目里边一段代码,我不知道这个req.next(err),是把数据返回到什么地方了
@Klaus.Fenng: 这个是直接到错误处理函数,因为node里,第一个参数都是err。如果有值,就到错误处理去了。
居然是用的coffee,我也用coffee,哈哈~
@幻天芒: 哦 是这样啊 多谢大神指教
@Klaus.Fenng: :)