首页 新闻 会员 周边

请教一个问题,nodejs的express框架里边

0
悬赏园豆:5 [已解决问题] 解决于 2015-04-02 11:40

由路由映射到后台的方法不是exports.xxxx = (req,res,next),这个next是个中间件,但是是什么意思呢?

还有我还看到有这样写的req.next(),这又是什么意思?

Klaus.Fenng的主页 Klaus.Fenng | 初学一级 | 园豆:199
提问于:2015-04-01 17:06
< >
分享
最佳答案
0

next就是将流程跳转到下一步。因为express是管道处理,就是这节处理完了,调用next就到下一节。

req.next(),只是req上调用next方法,express的req对象有这个方法吗?

收获园豆:5
幻天芒 | 高人七级 |园豆:37175 | 2015-04-02 10:35

有的

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 | 园豆:199 (初学一级) | 2015-04-02 10:42

@Klaus.Fenng: 这个是直接到错误处理函数,因为node里,第一个参数都是err。如果有值,就到错误处理去了。

 

居然是用的coffee,我也用coffee,哈哈~

幻天芒 | 园豆:37175 (高人七级) | 2015-04-02 11:37

@幻天芒: 哦    是这样啊  多谢大神指教

Klaus.Fenng | 园豆:199 (初学一级) | 2015-04-02 11:39

@Klaus.Fenng: :)

幻天芒 | 园豆:37175 (高人七级) | 2015-04-02 11:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册