express.Router() 返回未定义

express.Router() is returning undefined

我正在尝试设置一个在我的 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 = ...)总是returnsundefined。当我调试时,我可以清楚地看到 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"
  }

升级您的 Express JS 包可能会有帮助

npm install express@4.13.4 -g

npm install express@4.13.4 --save-dev

//Edit your pakage.json
"dependencies": {
    "express": "~4.13.4"
}

您必须将您的快递更新或迁移到 4.#.#。 Defenitly 您使用的是旧版本,版本 3.x 和 2,x 已弃用。这是 migration 的 link。您也可以使用此命令:

获取最新版本

npm install express --save

获取版本 4.13.4

npm install express@4.13.4 --save