2017-12-31 144 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'); }); 
,451,515,

브라우저 오류

error cannot get /

에는 CLI 오류가 없습니다.

나는 여러 번 튜토리얼을주의 깊게 읽었으며 라우팅을 분리 할 때 단계가 빠져 있거나 (묵시적으로) 있다고 생각합니다.

Can not Get/Error가 발생하는 이유와 출력을 올바르게 라우팅하는 방법을 이해할 수있는 사람이 있습니까?

답변

1

당신은 매우 가깝습니다! 문제는 두 개의 다른 위치에 app을 정의한다는 것입니다.

대신 index.jshellotest.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