Nodejs - 抛出不可预知的错误,因为'property'get'of undefined`

时间:2017-03-10 06:54:32

标签: javascript node.js

我正在尝试运行我的node应用。但我收到一个错误,我无法理解。请任何人帮我理解这个?

这是我的代码:

var express = require("express"),
  app = express(),
  path = require("path");

app.get("/", function( req, res ) {
    res.sendfile( path.join(__dirname + '/index.html'));
});

var adminRouter = express.Router();

adminRouter.get('/', function(req, res) {
    res.send('I am the dashboard!');
});

app.use("/admin", adminRouter);

app.listen(process.env.PORT, process.env.IP);
console.log("basic app listeners!");

我得到的错误是:

adminRouter.get('/', function(req, res) {
           ^

TypeError: Cannot read property 'get' of undefined
    at Object.<anonymous> (/home/ubuntu/workspace/server.js:16:12)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:990:3

任何人都可以帮助我吗?我正在cloud9中运行我的应用。

提前感谢!!

2 个答案:

答案 0 :(得分:3)

您的快递版本低于+4,可能是版本3.尝试

npm uninstall express --save 

然后重新安装。

adminRouter.get('/', function(req, res) {
res.send('I am the dashboard!');
});

也可以这样试试。

 adminRouter.route('/').get(function(req,res){
res.json({'hello there from main route!'});
});

答案 1 :(得分:2)

实际上这是快速版本问题。

版本 4.x 支持

express.Router();,默认情况下云9 支持 3.x

更改你的package.json

“express”:“^ 4.15.2”,

并删除node_module文件夹 然后运行

npm install