2016-11-26 6 views
0

index.jsファイル:Node.jsのページが動作しないレンダリング - サーバーがエラーをスローしない場合でも

var express = require('express'); 

var dummy = require('./routes/dummy.js'); 
var showdata = require('./routes/showdata.js'); 

var app = express(); 
app.set('view engine', 'ejs'); 

app.use('/dummy', dummy); 
app.use('/showdata', showdata); 

dummy.jsファイル:

var express = require('express'); 
    var router = express.Router(); 

    router.get('/', function(req, res, next) { 
    res.render('dummy'); 
    next(); 
    }); 

    module.exports = function() { 
    var precious_data = 'precious_data - from dummy.js file'; 
    console.log(precious_data); 
    return router; 
    }; 

showdata .jsファイル:

var express = require('express'); var router = express.Router(); 


var dummyReq = require('./dummy.js'); 
var showModuleExports = dummyReq(); 


router.get('/', function(req, res, next) { 
    res.render('showdata', { renderData : showModuleExports }); 
}); 

module.exports = router; 

サーバーにエラーは表示されませんが、ページを表示できません...ブラウザに、localhostと入力すると繰り返し読み込まれます。どんな考えが間違っていますか?

答えて

0

この行:

app.use('/dummy', dummy); 

代わりにすべきである:

app.use('/dummy', dummy()); 

そのモジュールは、関数をエクスポートしているので、その戻りルータ。

res.render()の後にnext()を呼び出す必要はなく、要求に一致する別のルートハンドラがある場合に意図しない動作が発生する可能性があります。

+0

もちろん...ありがとう! – webmasternewbie

+0

編集:BTW理由 - var consoleData = dummyReq.precious_data(var consoleData = showModuleExports.precious_data)が機能していませんか? – webmasternewbie

+0

なぜでしょうか? 'precious_data'はローカル変数です。エクスポートしているオブジェクトのプロパティではありません。 – mscdex

関連する問題