express 里面的 app.use() 和 app.get()有什么区别?
发布于 9 年前 作者 linkeyd 11029 次浏览 最后一次编辑是 8 年前 来自 问答

exports.getProducts1 = getProducts1; exports.getProducts2 = getProducts2;

var sourseList = require(’./sourse/sourseList’); app.get(’/sourseList1’, sourseList.getProducts1 ); //指定路游 app.get(’/sourseList2’, sourseList.getProducts2 );

module.exports = router;

var sourseList = require(’./sourse/sourseList’); app.use(’/sourseList’, sourseList);

最近在学习express的时候网络上看到这边的输出有点奇怪,然后就尝试了下用app.get(’/sourseList’, sourseList) 输出,结果出现了 404错误。。。所以一直在很奇怪到底 get 和 use有什么区别。难道一个是用来调用接口,一个是用来调用对象?

3 回复

app.use() 是加载中间件的吧,反正我目前的理解是这样,官方的文档看不懂,没中文的

app.use() => app.use([path,] function [, function…]), Mounts the middleware function(s) at the path. If path is not specified, it defaults to “/”. 翻译一下就是:

  • 第一个参数path可省略,默认是’/’。就是路径。如果省略,那么第二个参数会应用到所有的request,不管来的request是get还是post
  • 第二个参数是一个函数,这个函数叫middleware function(中间件),所以app.use()正如楼上所说一般式用来加载中间件的 app.get() =>app.get(path, callback [, callback …]), Routes HTTP GET requests to the specified path with the specified callback functions. 这个函数一般出现在路由中,是用来处理对某个路径的get请求的。比如: app.get(’/pets’, function(){}), 当Get /pets的请求出现的时候,后面的那个函数会被调用。

所以大致区别就是二者的目的不同,使用场景也不同。

个人理解,都是中间件,use相当于是通用的一个方法,而get/post是客户端请求出现会调用这个东西

回到顶部