首页 > 在express 中 app.use(), app.get()的调用顺序

在express 中 app.use(), app.get()的调用顺序

app.get('/',photos.list);  
app.use('/', routes);

本意是想用 photo.list 代替 routes ,可是为什么要将get放在use的上面?
它们之间存在什么样的关系?

photo.js 文件是

var path = require('path');
var photos = [];
photos.push({
    name:'node.js logo',
    path:'/images/tu01.jpg'
    });

exports.list = function(req, res){ 
  res.render('photos', {
  title: 'Photos',
  photos: photos 
});
};

use是加载中间件,要放在get之前的。get post都是路由,放在最后面。
如果你的问题是把use放在前面的时候执行不了之后的get了,那就检查一下routes函数里是否有next()
另外,你的本意我稍微有点没看懂,这两个方法除了第一个参数可选字符串(指定执行中间件的路由)外,参数类型全都是function,为什么会有photos.list这种看着像数组的变量呢。。。


app.get()

只有 req 和 res 两个参数,进入 handler 之后,必须调用 res 的相关方法来结束本次请求。

app.use()

除了 req 和 res,还有第三个 next 参数,执行 next(), 会调用下一个命中的 handler

【热门文章】
【热门文章】