2016-07-08 8 views
0

저는 Node에 익숙하지 않았습니다. 기본 경로를 사용하여 동적 pags를 제공하지만 node server.js을 실행하고 localhost를 호출 한 후 계속해서 Error: Cannot GET/을 계속 가져 오는 간단한 서버를 작성하는 데 대한 지침서를 따라 왔습니다. 브라우저에서 3300 내 노선들은 외부에서 정의하고 다음과 같이 routes.initialise()를 사용하여 초기화됩니다Node.js 브라우저 오류 GET/

//routes.js 
var home = require('../controllers/home'), 
image = require('../controllers/image'), 
express = require('express'); 

module.exports.initialize = function(app, router) { 
//var router = express.Router(); 

router.get('/', home.index); 
router.get('/images/:image_id', image.index); 
router.post('/images', image.create); 
router.post('/images/:image_id/like', image.like); 
router.post('/images/:image_id/comment', image.comment); 

app.use('/', router); 
}; 

나는 넓고 멀리 있지만 솔루션 향후 검색했습니다. 나는 정말로 좌절하고 여기서 도움이 필요할 것입니다.

//configure.js 
var path = require('path'), 
routes = require('./routes'), 
exphbs = require('express3-handlebars'), 
express = require('express'), 
bodyParser = require('body-parser'), 
cookieParser = require('cookie-parser'), 
morgan = require('morgan'), 
methodOverride = require('method-override'), 
errorHandler = require('errorhandler'); 

module.exports = function(app) { 
app.engine('handlebars', exphbs.create({ 
    defaultLayout: 'main', 
    layoutsDir: app.get('views') + '/layouts', 
    partialsDir: [app.get('views') + '/partials'] 
}).engine); 

app.set('view engine', 'handlebars'); 
app.use(morgan('dev')); 
app.use(bodyParser({ 
    uploadDir:path.join(__dirname, 'public/upload/temp') 
})); 

app.use(methodOverride()); 
app.use(cookieParser('some-secret-value-here')); 
routes.initialize(app, new express.Router()); 

app.use('/public/', express.static(path.join(__dirname, '../public'))); 

if ('development' === app.get('env')) { 
    app.use(errorHandler()); 
} 

return app; 
}; 
또한

두 개의 파일, home.jsimage.js에 예상되는 :

//server.js 
var express = require('express'), 
config = require('./server/configure'),  
app = express(); 

app.set('port', process.env.PORT || 3300); 
app.set('views', __dirname + '/views'); 
app = config(app); 


var server = app.listen(app.get('port'), function() {  
console.log('Server up: http://localhost:' + app.get('port')); 
}); 

하고 서버를 구성하는 configure.js :

나는 서버를 생성하는 server.js이 configure.js의 기본 경로를 제공하십시오 :

//home.js 
module.exports = { 
index: function(req, res) { 
    res.send('The home:index controller'); 
} 
}; 

//image.js 
module.exports = {  
index: function(req, res) {   
    res.send('The image:index controller ' + req.params.image_id);  
}, 

create: function(req, res) {   
    res.send('The image:create POST controller');  
},  

like: function(req, res) {   
    res.send('The image:like POST controller');  
},  

comment: function(req, res) {   
    res.send('The image:comment POST controller');  
} 
}; 

언제든지 브라우저에서 링크를 가져 오려고 할 때 Can not GET/error를 반환합니다. 어떤 도움이라도 대단히 감사하겠습니다.

는 너무 감사 :) 실제로 정확한 코드를 복사하여 예상대로 솔직히 간접의 무리를 가지고 적어도 하나의 모듈을 사용되지하지만 그것이 일

+0

코드를 github에 올려 놓을 수 있습니까? 이것은 정확하게 복사하여 붙여 넣기에 적합합니다. –

+0

오, 미안 해요, 나는 기 튜브를 사용하지 않습니다. 단지 5 개의 파일 만 있습니다 : server.js, configure.js, image.js, home.js 및 routes.js. –

+0

드롭 박스 또는 일부 파일 공유에 넣으십시오. – Iceman

답변

1

. 어쩌면 PORT 환경 변수가 설정되어있어 앱이 3300에서 실제로 실행되고 있지 않은 것입니까?

+0

OP의 코드가 예상대로 작동하는지 확인할 수 있습니다. – rpadovani

+0

PORT 변수를 PORT를 사용하여 3300으로 변경하려고 시도했지만, 여전히 같은 오류. 그게 내가해야할 일인지 모르겠다. 더 많은 도움을 주시면 감사하겠습니다. 감사합니다 –

+0

나는 문자 그대로 파일을 다운로드하고 npm을 설치 한 다음 노드 서버를 실행하고 실행합니다. 당신은 콘솔 출력을 얻을 :'서버 최대 : http : // localhost : 3300'? – Paul