2016-07-08 3 views
0

Я довольно новичок в Node, я слежу за учебником по созданию простого сервера, который обслуживает динамические pags с некоторыми базовыми маршрутами, но продолжает получать Error: Cannot GET/ после запуска node server.js и вызова localhost : 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); 
}; 

Я искал далеко и широко, но никакого решения предстоящая. Я очень расстроен и нуждаюсь в некоторой помощи здесь.

У меня есть server.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 что конфигурирует сервер:

//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.js и image.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 /. Любая помощь будет оценена.

Большое вам спасибо :)

+0

Можете ли вы поместить код в github, чтобы я мог попробовать? Это довольно много, чтобы скопировать и вставить правильно. –

+0

О, извините, я не использую Github. Это всего пять файлов: server.js, configure.js, image.js, home.js и routes.js. –

+0

наденьте его на Dropbox или часть файла – Iceman

ответ

1

Я фактически скопировал ваш точный код и он работал, как вы ожидали, хотя, честно говоря, он получил кучу косвенностью и по крайней мере один устаревший модуль. Возможно, у вас есть переменная окружения PORT, и поэтому приложение на самом деле не работает на 3300?

+0

Я могу подтвердить, что код OP работает как ожидалось – rpadovani

+0

Я попытался изменить переменную PORT на 3300 с помощью установленного PORT, все та же ошибка. Я даже не знаю, что я должен делать. Пожалуйста, дополнительная помощь будет оценена по достоинству. Спасибо –

+0

Я буквально загрузил ваши файлы и запускал npm install, а затем сервер узлов и запускал. Вы получаете консольный вывод, например: 'Сервер вверх: http: // localhost: 3300'? – Paul

Смежные вопросы