像node.js中的命名空间一样的嵌套路由

时间:2015-01-28 12:40:53

标签: router

我想使用路由器嵌套路由,就像我们使用命名空间 - >

一样
app.namespace('/', function () {
    app.get('/', main.index);
    app.get('contact', main.contact);
    app.get('about', main.about);
});
/* user */
app.namespace('/user', function () {
    app.get('login', user.login);
    app.get('logout', user.logout);
    // an example of namespace in namespace
    app.namespace('/settings', function () {
        app.get('/', user.settings);
        app.get('profile', user.profile);
    });
    /* REST CRUD */
    //read
    app.get('/:id?', user.read); // if is not set, go to user profile
    //create
    app.post('/', user.add);
    //update
    app.put('/', user.update);
    //remove
    app.delete('/', user.destroy);
});

我只想嵌套与上面相同但使用路由器的路由。如何???

2 个答案:

答案 0 :(得分:0)

我找到了解决方案并在此解释......

在app.js文件中: -

var express = require('express');

var routes = require('./ routes / index');

var app = express();

app.use('/',routes);

在./routes/index.js

router.get('/',function(req,res){ // 主页 ..... });

router.get('/ navigation1',function(req,res){ // Nav1页面 ..... });

&安培;更多导航.....


我在这里给了一些链接。看看......

https://scotch.io/tutorials/learn-to-use-the-new-router-in-expressjs-4

Node.js express nested routes

答案 1 :(得分:0)

您可以使用此套餐: https://www.npmjs.com/package/express-namespace-routes

const express = require('express');
const routes = require('express-namespace-routes');
const app = express();
 
routes.prefix('/user', (user) => {
  user.post('/', (req, res) => res.send(''));
  user.get('/', (req, res) => res.send(''));
  user.get('/:id', (req, res) => res.send(''));
  user.delete('/:id', (req, res) => res.send(''));
  user.put('/:id', (req, res) => res.send(''));
 
  user.prefix('/settings', (settings) => {
    settings.post('/', (req, res) => res.send(''));
  });
});
 
app.use(routes);