2017-03-10 5 views
2

nodeアプリを実行しようとしています。しかし、私は理解できないエラーが発生しています。私はこれを理解するために助けてください?ここNodejs - 予期せぬエラーを「プロパティ」として投げます。「未定義」を取得します。

は私のコードです:

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で私のアプリを実行しています。

ありがとうございます! 4未満

+0

あなたは 'express.Router()。route()'を試しましたか?それは償却されません。 –

+1

コードが正しいように見え、問題を再現できません。使用しているノードとエクスプレスのバージョンは何ですか? – Leon

+0

'cloud9'でexpressの実行コンフィギュレーションを作成しました –

答えて

3

あなたのExpressバージョン、おそらくバージョン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!'}); 
}); 
+0

node_modulesフォルダを削除することをお勧めします。速報版を最新のものに変更し、更新されたjsonパッケージにnpm installを再実行してください。クラウド9はExpressバージョン+ 4.xをサポートしていません。これがコードを正しく実行しない主な理由です。 – Remario

+0

4.15.2は最新版です。 – Remario

2

実際これは明白なバージョンの問題です。

express.Router();

は、バージョン4.xの クラウド上でサポートされているデフォルト3.xの

変更

"表現" あなたのpackage.jsonで9サポート:「^ 4.15.2 "、

とnode_moduleフォルダ を削除してから

npm install

関連する問題