Node.js Express.js不带参数的嵌套路由

Node.js Express.js不带参数的嵌套路由,node.js,express,routes,Node.js,Express,Routes,我有一个快速服务器,解析GET/companys/:id/populate/。现在,我想设置GET/companys/populate/(不带:id)。然而,我不能走这条路去上班。例如,如果我尝试使用GET/companys/all/populate/,它会起作用,因此快速路线的模式似乎是path/:key/path/:key 这是真的吗?谢谢 编辑:添加代码。 server.js 'use strict'; var express = require('express'); var mong

我有一个快速服务器,解析
GET/companys/:id/populate/
。现在,我想设置
GET/companys/populate/
(不带
:id
)。然而,我不能走这条路去上班。例如,如果我尝试使用
GET/companys/all/populate/
,它会起作用,因此快速路线的模式似乎是
path/:key/path/:key

这是真的吗?谢谢

编辑:添加代码。

server.js

'use strict';

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var cors = require('cors');

var mongoUri = 'mongodb://localhost:27017';
mongoose.connect(mongoUri);

var db = mongoose.connection;
db.on('error', function() {
  throw new Error('Unable to connect to database at' + mongoUri);
});

// runs Express
var app = express();

// uses Cors
app.use(cors());

// uses bodyParser
app.use(bodyParser.json());

// requires Mongo models
require('./models');

// includes routes.js, passing the object 'app'
require('./routes')(app);

// listens for connections on port 3000
app.listen(3000, function() {
  console.log("Express started on Port 3000");
});
routes.js

'use strict';

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var cors = require('cors');

var mongoUri = 'mongodb://localhost:27017';
mongoose.connect(mongoUri);

var db = mongoose.connection;
db.on('error', function() {
  throw new Error('Unable to connect to database at' + mongoUri);
});

// runs Express
var app = express();

// uses Cors
app.use(cors());

// uses bodyParser
app.use(bodyParser.json());

// requires Mongo models
require('./models');

// includes routes.js, passing the object 'app'
require('./routes')(app);

// listens for connections on port 3000
app.listen(3000, function() {
  console.log("Express started on Port 3000");
});
module.exports=函数(应用程序){
//如果一切正常,竖起大拇指
app.get('/',函数(req,res,next){

res.send('不,您可以管理任何您不需要的路线。
path/:key/path/:key
您也可以执行
path/path/path
或其他任何操作,您的问题一定在其他地方(请编辑您的问题并提供一些代码以便我们提供帮助)谢谢。只添加了代码。我移动了
app.get('/companys/all/populate',companys.populateAll)
第一个和下面的
app.get('/companys/:id/populate',companys.populate)有人能解释为什么吗?是的,这是因为它首先读取了
/companys/:id/populate
,所以
/companys/all/populate
触发了
/companys/:id/populate
,使用
all
作为
:id
。在
/companys/:id/populate
之前声明
/companys/all/populate
>这就像是说,
/companys/all/populate
不同于
/companys/:id/populate
,他应该以不同的方式处理这两个问题。@mJehanno明白了。谢谢!