Javascript ExpressJs-路由参数未显示在req.params属性中

Javascript ExpressJs-路由参数未显示在req.params属性中,javascript,node.js,rest,express,mongoose,Javascript,Node.js,Rest,Express,Mongoose,nodejs世界的新成员。正在尝试使用express创建REST服务,但我无法调试此问题。。。我想调用在路由器中具有路由参数的GET资源 index.js import Promise from 'bluebird'; import mongoose from 'mongoose'; import config from './config/env'; import app from './config/express'; // plugin bluebird promise in mongo

nodejs世界的新成员。正在尝试使用express创建REST服务,但我无法调试此问题。。。我想调用在
路由器中具有路由参数的GET资源

index.js

import Promise from 'bluebird';
import mongoose from 'mongoose';
import config from './config/env';
import app from './config/express';

// plugin bluebird promise in mongoose
mongoose.Promise = Promise;

// connect to mongo db
mongoose.connect(config.db, { server: { socketOptions: { keepAlive: 1 } } });
mongoose.connection.on('error', () => {
  throw new Error(`unable to connect to database: ${config.db}`);
});

const debug = require('debug')('express-mongoose-es6-rest-api:index');

// listen on port config.port
app.listen(config.port, () => {
  debug(`server started on port ${config.port} (${config.env})`);
});

export default app;
/config/express.js

import express from 'express';
import bodyParser from 'body-parser';
import routes from '../server/routes';

const app = express();

// parse body params and attache them to req.body
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

[...]

// mount all routes on /api path
app.use('/api', routes);


[...]

export default app;
/server/routes/index.js

import express from 'express';
import userRoutes from './user';
import messageRoutes from './message';
import applicationRoutes from './application';
import authRoutes from './auth';

const router = express.Router(); // eslint-disable-line new-cap

// mount message routes at /messages
router.use('/applications/:appId/messages', messageRoutes);

export default router;
/server/routes/message.js

import express from 'express';
import validate from 'express-validation';
import paramValidation from '../../config/param-validation';
import messageCtrl from '../controllers/message';

const router = express.Router(); // eslint-disable-line new-cap

router.route('/')
   /** GET /api/applications/:appId/messages - Get list of messages */
  .get(messageCtrl.getByAppId);

export default router;
import mg from 'mongoose'
import Message from '../models/message';
import moment from 'moment';

function getByAppId(req, res, next) {
  //return res.json(req.message);
  console.log(req);
}

export default {getByAppId};
/服务器/controllers/message.js

import express from 'express';
import validate from 'express-validation';
import paramValidation from '../../config/param-validation';
import messageCtrl from '../controllers/message';

const router = express.Router(); // eslint-disable-line new-cap

router.route('/')
   /** GET /api/applications/:appId/messages - Get list of messages */
  .get(messageCtrl.getByAppId);

export default router;
import mg from 'mongoose'
import Message from '../models/message';
import moment from 'moment';

function getByAppId(req, res, next) {
  //return res.json(req.message);
  console.log(req);
}

export default {getByAppId};
console.log(req)
的结果是请求对象的打印输出,但参数数组为空

 baseUrl: '/api/applications/57fcf8129eb1d52f1cb10332/messages',
 originalUrl: '/api/applications/57fcf8129eb1d52f1cb10332/messages/',
 _parsedUrl:
  Url {
    protocol: null,
    slashes: null,
    [...]
 params: {},
 query: {},

有人能提供一些指导吗?非常感谢。不确定为什么参数为空。是否可能是express
router.use()
语句中的
:appId
变量声明?

在何处以及如何装载api路由`/api/applications/:appId/。。。另外,如果您添加了带有文件名的新代码块,而不是使用==,这会更好。这是否回答了您的问题?