代码之家  ›  专栏  ›  技术社区  ›  sreepurna

在Express中使用路由器

  •  1
  • sreepurna  · 技术社区  · 8 年前

    我正在尝试创建一些基本的Express应用程序。我想在里面使用路由器。 所以我创建了router.js

    router.route('/a/x').post(x.p)
    router.route('/a/y').post(x.p)
    router.route('/a/z').post(x.p)
    

    现在我想把路由器加载到index.js中

    var routes = require('./router.js')
    app.use(?,routes)
    

    我想知道这里面应该放些什么?

    3 回复  |  直到 8 年前
        1
  •  1
  •   Paul Rey    8 年前

    一旦你导入了你的 router.js 在索引中,您需要 express 它可以使用这个路由器。

    在下面,我假设您使用 var router = require('express').Router; 以便创建自己的路由器。

    但是首先,你导出路由器了吗?

    // In router.js
    var router = require('express').Router;
    
    router.route('/a/x').post(x.p)
    router.route('/a/y').post(x.p)
    router.route('/a/z').post(x.p)
    
    module.exports = router; // This line may differ in funtion of your Node.js version
    

    并使用它:

    // In your index.js
    var express = require('express');
    var app = express();
    var router = require('./router.js');
    
    app.use('/', router);
    

    我鼓励你阅读 documentation of app.use() using router as a valid middleware 更多信息。

        2
  •  0
  •   Harshal Yeole    8 年前

    你需要做的是:

    const Express = require(`express`);
    const App = Express();
    require(`./router.js`)(App);
    

    希望它能解决您的问题。

        3
  •  0
  •   Rahul Sharma    8 年前

    App.使用 第一个参数,可以指定路由的任何前缀。

    import * as express from 'express';
    
    const router = express.Router();
    router.post('/a/x', (req, res) => {
        // Your code
    });
    
    **OR**
    
    var router = require('./router.js')
    
    
    app.use('/v1', router); // HERE you can specify version if you want or / for nothing
    
    推荐文章