2016-07-08 20 views
0

Nodeにはかなり新しくなっています。基本的なルートで動的なページングを行うシンプルなサーバーを構築するためのチュートリアルに従いましたが、node server.jsを呼び出してlocalhostを呼び出した後にはError: Cannot GET/ :ブラウザで3300私のルートは、外部で定義され、次のようにroutes.initialise()を使用して初期化されていますNode.jsブラウザエラーCan not 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; 
}; 

も2つのファイルになっているhome.jsimage.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の5つのファイルです。 –

+0

ドロップボックスやファイル共有に入れてください – Iceman

答えて

1

私は実際にあなたの正確なコードをコピーして、あなたが期待するよう率直に言って、それが間接の束と少なくとも一つの非推奨のモジュールを持っているけれども、それは、働いていました。 PORT環境変数が設定されている可能性があります。そのため、アプリケーションは実際に3300で動作していませんか?

+0

OPのコードが正常に動作することを確認できます – rpadovani

+0

PORT変数を3300に変更しようとしましたが、まだ同じエラー。私はそれが私がやるべきことであるかどうかわからない。もっと助けていただければ幸いです。ありがとう –

+0

私は文字通りあなたのファイルをダウンロードしてnpmをインストールしてからノードサーバーを実行し、それが実行されます。あなたは 'Server up:http:// localhost:3300'のようなコンソール出力を得ますか? – Paul