CareiOS
V2EX  ›  Node.js

请教 express 中的路由问题,望高人指点

  •  
  •   CareiOS · Jun 6, 2016 · 3089 views
    This topic created in 3634 days ago, the information mentioned may be changed or developed.

    在网上我看到有路由的用例

    app.get('/polls/polls', routes.list);
    app.get('/polls/:id', routes.poll);
    app.post('/polls', routes.create);
    

    一般都是写到 app.js 中的,

    我想把 polls 下的这三个请求写到一个 polls.js 的路由文件中。我在 app.js 中写的是:

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

    polls.js 里:

    router.get('/polls', function(req, res, next) {
    });
    
    router.get('/:id', function(req, res, next) {});
    router.post('/', function(req, res, next){});
    

    我测试第二个有 id 的接口,无法路由到。 请问这种写法可以吗?

    3 replies    2016-06-06 09:58:23 +08:00
    visonme
        1
    visonme  
       Jun 6, 2016
    可以使用 Express.Router.
    在 polls.js 文件中这样写

    const express = require('express');
    var router = express.Router();

    router.get("/" ,(req,res) =>{
    //todo
    });

    //其他类同

    exports.routers = router;
    Trim21
        2
    Trim21  
       Jun 6, 2016 via Android
    我记得好像第二种写法有一个额外的 require ?
    dphdjy
        3
    dphdjy  
       Jun 6, 2016 via Android   ❤️ 1
    上面写法没错,不过建议改成这样
    POST/GET /polls
    GET /polls/:id
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5017 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:33 · PVG 17:33 · LAX 02:33 · JFK 05:33
    ♥ Do have faith in what you're doing.