美文网首页
Express框架的路由

Express框架的路由

作者: 红烧排骨饭 | 来源:发表于2017-03-31 11:17 被阅读0次

    什么是路由

    路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问

    每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这些函数将被执行

    路由的定义

    路由的定义由如下结构组成

    app.METHOD(PATH, HANDLER)
    

    其中,app 是一个 express 实例;METHOD 是某个 HTTP 请求方式中的一个;PATH 是服务器端的路径;HANDLER 是当路由匹配到时需要执行的函数

    例子

    下面的代码展示了几个路由实例

    // 对网站首页的访问返回 "Hello World!" 字样
    app.get('/', function(req, res) {
        res.send('Hello, word!');
    });
    
    // 网站首页接受 POST 请求
    app.post('/', function(req, res) {
        res.send('Got a POST request');
    });
    
    // /user 节点接受 PUT 请求
    app.put('/user', function(req, res) {
        res.send('Got a PUT request at /user');
    });
    
    // /user 节点接受 DELETE 请求
    app.delete('/user', function(req, res) {
        res.send('Got ad DELETE request at /user');
    });
    

    express.Router

    看一下目前 index.js 文件的内容

    var express = require('express');
    var app = express();
    
    app.get('/', function(req, res) {
        res.send('Hello, word!');
    });
    
    app.post('/', function(req, res) {
        res.send('Got a POST request');
    });
    
    app.put('/user', function(req, res) {
        res.send('Got a PUT request at /user');
    });
    
    app.delete('/user', function(req, res) {
        res.send('Got ad DELETE request at /user');
    });
    
    app.listen(3000);
    

    可以看到这里写了很多的路由。在实际开发中通常有很多很多的路由,如果都写到一起的话,既臃肿也不好维护。可以使用 express.Router 实现更优雅的解决方案。在项目的 routes/ 文件夹下创建 index.jsuser.js 文件,把路由的定义写到这里。最终的效果如下

    routes/index.js

    var express = require('express');
    var router = express.Router();
    
    router.get('/', function(req, res) {
        res.send('Hello, word!');
    });
    
    router.post('/', function(req, res) {
        res.send('Got a POST request');
    });
    
    module.exports = router;
    

    routes/user.js

    var express = require('express');
    var router = express.Router();
    
    router.put('/', function(req, res) {
        res.send('Got a PUT request at /user');
    });
    
    router.delete('/', function(req, res) {
        res.send('Got ad DELETE request at /user');
    });
    
    module.exports = router;
    

    index.js

    var express = require('express');
    var app = express();
    
    var indexRouter = require('./routes/index');
    var userRouter = require('./routes/user');
    
    app.use('/', indexRouter);
    app.use('/user', userRouter);
    
    app.listen(3000);
    

    相关文章

      网友评论

          本文标题:Express框架的路由

          本文链接:https://www.haomeiwen.com/subject/yhomottx.html