【问题标题】:routing a request in node.js with express使用 express 在 node.js 中路由请求
【发布时间】:2018-09-10 08:37:14
【问题描述】:

我已经使用 express 生成器生成了一个示例应用程序,并且在 app.js 中有

var routes = require('./routes/index');

var users = require('./routes/users');

生成index.js和users.js两个文件

要使用文件中的代码,有这几行

app.use('/', routes);

app.use('/users', users);

我的问题是 app.use('/', routes) 处理以 '/' 开头的路由上的每个请求,那么到 '/users' 的路由请求将如何路由到 users路线

【问题讨论】:

  • app.use('/', routes); 仅匹配根调用(不是以开头的调用)
  • 假设 routesusers 是路由器,没有特定 URL 路由的路由器会将控制权传递给链中的下一个处理程序,因此它有机会检查URL 并让其路由处理程序之一运行。
  • 你应该先调用 app.use('/user',users) 然后你应该调用 app.use('/',routes)

标签: express


【解决方案1】:

app.use() 是中间件。您向它传递一个可选路径和一个函数,该函数的工作是决定是否要将请求传递给进一步的中间件或进一步的路由。它通过调用next() 来做到这一点,或者如果它不想传递它,它不会调用 next()。

所以,如果你有:

app.use("/", fn);

将为所有路径调用该中间件,但您传递给它的函数内部的代码决定是否传递请求。

【讨论】:

    猜你喜欢
    • 2021-02-11
    • 2016-05-14
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2012-07-10
    • 2012-10-24
    相关资源
    最近更新 更多