简体   繁体   English

express.Router()返回undefined

[英]express.Router() is returning undefined

I'm trying to set up a rest API that runs on my node.js HTTP server. 我正在尝试设置在我的node.js HTTP服务器上运行的rest API。 For regular calls, I want the path to be /... , for API calls, I want to use /API/... . 对于常规调用,我希望路径为/... ,对于API调用,我想使用/API/...

From what I can gather from various webpages, including http://expressjs.com/guide/routing.html , what I need is something like this: 从我可以从各种网页收集的内容,包括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);

For some reason, however, the third line ( var router = ... ) always returns undefined . 但是,出于某种原因,第三行( var router = ...始终返回undefined When I debug, I can plainly see that express.Router() is a function with no return statement, but does include a bunch of this.foo setters. 当我调试时,我可以清楚地看到express.Router()是一个没有return语句的函数,但确实包含了一堆this.foo setter。 This makes me think that I should be calling var router = new express.Router() , but I can't find any documentation to support that claim. 这让我觉得我应该调用var router = new express.Router() ,但我找不到任何支持该声明的文档。

Ideas on what's going wrong? 什么出错的想法?

My project dependencies in my packages.json files are: 我的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"
  }

Upgrading your Express JS package may help 升级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"
}

You must update or migrate your express to 4.#.# . 您必须将快递更新或迁移到4。#。#。 Defenitly you are using a older version, versions 3.x and 2,x are deprecated. 默认情况下,您使用的是旧版本,不推荐使用版本3.x和2,x。 Here is a link for the migration . 这是迁移的链接。 Also you can use this comands: 你也可以使用这个命令:

to get the last version 获取最新版本

npm install express --save npm install express --save

or 要么

to get the version 4.13.4 获得版本4.13.4

npm install express@4.13.4 --save npm install express@4.13.4 --save

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM