NodeJS Express req.params,enrouten控制器工作不正常
NodeJS Express req.params, enrouten controllers not working properly
各位,尝试使用https://github.com/krakenjs/express-enrouten我的控制器。
由于某种原因,我无法获得我想要的行为,并且根本没有设置req.params
。
app.js:
app.use(bodyParser());
var controllerPath = __dirname + '/controllers';
app.use(enrouten({directory: controllerPath }));
pingController.js:
module.exports = function registerRoutes(app){
app.get('/', pong);
};
function pong(req, rsp) {
console.log (req.params);
rsp.set('Content-Type', 'application/json');
var response = {
ping: 'pong',
service: 'ShuttleService',
env: process.env.NODE_ENV,
params: req.params
};
rsp.send(response);
};
问题:
- 如果我命中
http://localhost:3000/pingController?param=foo
,则req.params
是{}
而不是{param:foo}
- 到页面的路径不是
http://localhost:3000/
,而是实际的文件名,即http://localhost:3000/pingController/
- 如果我用
app.get('/ping', pong);
替换app.get('/', pong);
,则找不到页面。。。我如何让这个控制器为/ping
uri而不是uri中的文件名工作 req.query
工作。。。为什么req.params
没有设置好
我该如何让恩鲁滕通过req.params
?此外,如何获得预期的uri路径行为?
谢谢!
因此,以下是每个项目的答案:
-
req.params
在URL的路径中返回路由参数。如果你想用req.params
获得参数param
,你必须在路径中传递它们,所以你的代码应该看起来像:module.exports = function registerRoutes(app){ app.get('/:param', pong); };
并像CCD_ 17一样在URL中传递。现在,如果你调用
req.params
,你就会得到{ param: foo }
; -
这就是
express-enrouten
模块的工作方式(请参阅文档(。根据您的代码,您已经定义了控制器将位于controllers
目录下。因此,如果您有一个名为pingController
的控制器,那么调用它的URL是http://localhost:3000/pingController/
; -
如果将
/
更改为/ping
,则要访问的URL现在为http://localhost:3000/pingController/ping
,依此类推; -
req.query
返回URL查询参数(在?
之后,请参阅文档(。也就是说,当您调用URLhttp://localhost:3000/pingController?param=foo
时,它会返回您的数据。
相关文章:
- 为什么ng控制器不调用或工作或功能不工作
- AngularJS控制器不工作,为什么?(简单的控制器示例)
- 角度控制器功能赢得'不按指令工作
- console.log在角度控制器内不工作
- 角度控制器功能不;在指令内部调用时,似乎无法始终如一地工作
- 如何使Angular JS控制器与指令一起工作
- AngularApp中的多个控制器不工作
- 具有范围变量的控制器不工作
- 角度指令和属性Don'在控制器内创建和设置时无法工作
- AngularJS控制器没有'第一次刷新页面后无法工作
- 包含ngMock时控制器不工作
- 部分html视图's控制器未使用KendoPanelBar内容URL在指令模板URL中工作
- 在第三个控制器中使用时RootScope不工作
- angularJS-当我添加ngRoute时,控制器停止工作
- ng-显示无法从控制器工作
- extjs setLoading()不能从控制器工作
- 如何让这个AngularJS控制器工作($scope变量没有在控制器中初始化)
- NodeJS Express req.params,enrouten控制器工作不正常
- 我如何使ui-router控制器工作
- $emit from子控制器工作,但是$broadcast from父控制器不起作用