首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在快递中混淆与app.use和路由器()

在快递中混淆与app.use和路由器()
EN

Stack Overflow用户
提问于 2020-04-15 11:39:16
回答 3查看 713关注 0票数 0

我在Node.js中学习Express,遇到了路由器(),允许我们模块化我们的路由。但我发现了这个密码:

代码语言:javascript
复制
// we'll create our routes here

// get an instance of router
var router = express.Router();

...

// route with parameters (http://localhost:8080/hello/:name)
router.get('/hello/:name', function(req, res) {
    res.send('hello ' + req.params.name + '!');
});

// apply the routes to our application
app.use('/', router);

令我困惑的是,这就是为什么我们需要使用app.use('/',路由器);应用这些路由。也就是说,如果我们使用app.get('/',路由器)怎么办?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-15 12:33:22

我将给出一个简单的代码示例,让您了解express.Router()的用法。是的,你说得对,这对modularization.很有帮助实际上,它使我们的主app.js文件从所有路由中清除。我们只是把所有的路线,根据他们的目的,在不同的文件,并要求他们时,需要。因此,假设我有两个文件app.jsregister.js

代码语言:javascript
复制
// app.js file's code goes here
let express = require("express")
let app = express()
let register = require("./routes/register")

app.use(register) // This will tell your app to import all those routes which are in register 
代码语言:javascript
复制
// register.js file's code goes here
let express = require("express")
let router = express.Router()

router.get("/register", callback_function);
router.post("/register", callback_function);

module.exports = router;

因此,基本上,我要展示的是,您的register.js可以包含所有类型的HTTP请求(GET、POST、PUT、.)当我们使用app.use(register)时,它将处理所有这些路由。app.get("route_path",callback_function)只用于处理到该路径的get请求。

票数 2
EN

Stack Overflow用户

发布于 2020-04-15 11:51:33

路由器只是它自己的一个中间件。如果您使用app.get('/', router),您将只对GET请求使用路由器。使用use通道,所有请求都在那里。

票数 0
EN

Stack Overflow用户

发布于 2020-04-15 11:57:12

当使用app.use时,它处理所有的HTTP方法,但当使用app.get时,它只使用GET方法。

app.use的另一个优势是,该路由将与紧跟其路径的任何路径与/匹配。例如:

代码语言:javascript
复制
app.use('/v1', ...)

将匹配/users/users/accounts/users/accounts/account-id等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61227749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档