我試圖設置一個運行在我的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