express.Router()返回undefined

时间:2015-04-06 03:44:32

标签: node.js express

我正在尝试设置在我的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"
  }

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