我试图设置一个运行在我的node.js HTTP服务器上的rest API。对于常规呼叫,我希望路径为/...
,对于API调用,我想使用/API/...
。express.Router()返回undefined
从我可以从不同的网页,包括http://expressjs.com/guide/routing.html,我需要收集是这样的:
var express = require('express');
var app = express();
var router = express.Router();
/* set up app ... */
router.route('/some/url').get(...).put(...);
app.use('/API', router);
出于某种原因,但是,第三行(var router = ...
)总是回报undefined
。当我调试时,我可以清楚地看到,express.Router()
是一个没有return语句的函数,但包含一堆this.foo
设置器。这让我觉得我应该打电话var router = new express.Router()
,但我找不到任何文档来支持该声明。
想法出了什么问题?在我packages.json
文件
我的项目依赖关系:
"dependencies": {
"body-parser": "^1.12.2",
"express": "^3.4.4",
"express-react-views": "^0.7.1",
"fluxxor": "^1.5.2",
"mongoose": "^4.0.1",
"react": "^0.12.2"
}
'express.Router' [与Express 4.0一起推出](https://github.com/strongloop/express/wiki/New-features-in-4.x)(vs. '^ 3.4.4')。如果该功能在Express 3.x中完全可用,则它是由另一个模块定义的扩展。 – 2015-04-06 03:56:48
我认为你使用的是旧版本的express。你用express 4.x来试试。或者只是提到'*',然后将npm包安装在本地的nom_modules包中。 – NarendraSoni 2015-04-06 03:58:23
是的,我更新了我的软件包到当前版本,并修改了我的app.js.我将不得不做更多的工作,但是'.Router()'现在可以工作。谢谢! – dfoverdx 2015-04-06 04:06:28