V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CareiOS
V2EX  ›  Node.js

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

  •  
  •   CareiOS · 2016-06-06 09:34:37 +08:00 · 2592 次点击
    这是一个创建于 2880 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    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 条回复    2016-06-06 09:58:23 +08:00
    visonme
        1
    visonme  
       2016-06-06 09:55:03 +08:00
    可以使用 Express.Router.
    在 polls.js 文件中这样写

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

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

    //其他类同

    exports.routers = router;
    Trim21
        2
    Trim21  
       2016-06-06 09:56:09 +08:00 via Android
    我记得好像第二种写法有一个额外的 require ?
    dphdjy
        3
    dphdjy  
       2016-06-06 09:58:23 +08:00 via Android   ❤️ 1
    上面写法没错,不过建议改成这样
    POST/GET /polls
    GET /polls/:id
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3752 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:28 · PVG 12:28 · LAX 21:28 · JFK 00:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.