我正在尝试设置在我的node.js HTTP服务器上运行的rest API。对于常规通话,我希望路径为/...
,对于API调用,我想使用/API/...
。
从我可以从各种网页收集的内容,包括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
setter。这让我认为我应该致电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"
}
答案 0 :(得分:4)
升级Express JS软件包可能会有所帮助
npm install express@4.13.4 -g
OR
npm install express@4.13.4 --save-dev
OR
//Edit your pakage.json
"dependencies": {
"express": "~4.13.4"
}
答案 1 :(得分:0)
您必须将快递更新或迁移到4。#。#。默认情况下,您使用的是旧版本,不推荐使用版本3.x和2,x。这是migration的链接。你也可以使用这个命令:
获取最新版本
npm install express --save
或
获取版本4.13.4
npm install express@4.13.4 --save