2016-12-24 4 views
-1

私はクラウド9 ideを使用しており、タイトルに記載されているエラーが発生しています。 ファイル構造は、このノードjs TypeError:クラウド9を使用して未定義のプロパティ 'get'を読み取れませんIDE

client/ 
    views/ 
    -index.ejs 
    routes/ 
    -index.js 
-server.js 

server.jsファイルのように見えます

var path = require('path'); 
var async = require('async'); 
var express = require('express'); 
var router = express(); 
var server = http.createServer(router); 

router.use(express.static(path.resolve(__dirname, 'client'))); 


router.set('view engine','ejs'); 
//app.set('views','app/views'); 
router.locals.siteTitle = "Meetups"; 

//router.use(express.static(path.resolve('./public'))); 
router.use(require('./client/routes/index')); 
router.use(require('./client/routes/speaker')); 
server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function(){ 
    var addr = server.address(); 
    console.log("Chat server listening at", addr.address + ":" + addr.port); 
}); 

私は

TypeError: Cannot read property 'get' of undefined router.get('/',function(req,res){

var express = require('express'); 
var router = express.Router(); 
    router.get('/',function(req,res){ 
    res.render('index',{ 
    pageTitle:'Home', 
    pageID:'home', 
    }); 
}); 

module.exports = router; 

答えて

0

エラーを受信して​​いるルートフォルダ内の私のindex.jsながらあなたのコードを私のc9 ideにコピーしました。

server.jsの最初の問題は、httpモジュールを必要とする必要があります。

var http = require("http"); 

このファイルは共有していないため削除しました。

router.use(require('./client/routes/speaker')); 

少なくとも、Nodeはエラーを投げなかった。

チャットサーバーが0.0.0.0:8080

でリスニングしかし、私はあなたのためにいくつかの提言を持っています。

  • まず、server.jsでは、ルートモジュールではないため、「router」変数の名前を「app」に変更してください。
  • パブリックフォルダの場合は、クライアントフォルダを使用しないで、 "public"という名前のフォルダを作成します。あなたはルート、ビューなどをクライアントフォルダに持っているからです。
  • 必要な式については、ファイルの先頭にしてください。
var routes = require('./client/routes'); 

// some code ... 

app.use('/', routes); 
  • とルートのための唯一つのファイルをインポートします。ルート/ index.js

  • でインポート他のルートファイル私はちょうどserver.listen

var server = http.createServer(app); 
server.listen(...) 
前createServerを好みます
関連する問題