2017-12-31 4 views
0

私は最初のノード/エクスプレスアプリを構築していますが、ステップ2のthis linkでエラーが発生しました。Node.js経由のエクスプレス -/

私は、app.getレンダリング機能によってテンプレートにデータをルーティングできました。次のステップでは、routesディレクトリのindex.jsにルートを移動しようとしましたが、これがエラーになります。

ディレクトリ構造

directory structure for app

hellotest.js

var express = require('express'); 
var app = express(); 
var routes = express.Router('./routes/index'); 

app.set('view engine','ejs'); 

var server = app.listen (2000, function(){ console.log('Waiting for you on port 2000'); }); 

app.use('/', routes); 

index.js

var express = require('express'); 
var app = express(); 
var routes = express.Router('./routes/index'); 

app.get ('/', function(req, res){ res.render('default',{title: 'Home', body: 'Datatest'}); }); 

app.get ('/about-us', function(req, res){ res.send('<h1>Lucius Websystems</h1>Amsterdam, The Netherlands'); }); 

app.get ('/about/:name?', function(req, res){ var name = req.params.name; res.send('<h1>' +name +'</h1>About text'); }); 

ブラウザのエラー

error cannot get /

何のCLIエラーはありません。

私は慎重にチュートリアルを何度も繰り返してきましたが、ルーティングを切り離す際には足りない(または暗示された)ステップがあると思います。

Can not Get/Errorが表示され、出力を適切にルーティングできる理由を理解できますか?

答えて

1

あなたは非常に近いです!問題は、appを2つの異なる場所に定義していることです。

代わりにindex.jsは、hellotest.jsでインスタンス化するサーバーにルーターをエクスポートする必要があります。

Index.jsは次のようになります。

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

routes.get('/', function(req, res){ res.render('default',{title: 'Home', body: 'Datatest'}); }); 

routes.get('/about-us', function(req, res){ res.send('<h1>Lucius Websystems</h1>Amsterdam, The Netherlands'); }); 

routes.get('/about/:name?', function(req, res){ var name = req.params.name; res.send('<h1>' +name +'</h1>About text'); }); 

module.exports = routes; 

そしてhellotest.jsが一番上にこの行を持っている必要があります。

var routes = require('./routes/index');

+0

はあなたの友人に感謝します! – lcunning

関連する問題