2017-01-28 35 views
2

メインファイル内のすべてのルートを含む私のapp.jsを書きますが、すべてがうまくいきました。私の目標は、別のファイルのルートを移動することでプロジェクトをより明確にすることでしたが、機能しません。 ミドルウェア関数の代わりにオブジェクトを渡しています。正しい方法でオブジェクトを修正する方法がわかりません。次のコードNodejs Express:個別ファイル内のルート

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var morgan = require('morgan'); 
var mongoose = require('mongoose'); 
var myRoutes = require('./app/routes/myRoutes.js'); 

... 

//parser for getting info from POST and/or URL parameters 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

//for log requests to console 
app.use(morgan('dev')); 

app.use('/myRoutes', myRoutes); 

app.get('/',function(req,res){ 
    res.end('Welcome Page!'); 
}); 

//Server Start 
app.listen(port); 
console.log('server start at port ' + port); 

アプリ/路線/ myRoutes.js含まれています:

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

myRoutes.route('/') 
    .get(function(req, res, next){ 
     res.end('myRoute Get'); 
    }) 
    .post(function(req, res, next){ 
     res.end('myRoute Post'); 
    }); 

module.export = myRoutes; 
:私もこれを試してみました

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

myRoutes.get('/users',function(req,res){ 
... 
}); 

myRoutes.post('/setup',function(req,res){ 
    ... 
}); 

myRoutes.post('/remove', function(req,res){ 
    ... 
}); 

module.export = myRoutes; 

は、これが私のapp.jsファイルです

しかし、もう一度ミドルウェア機能を渡していないようです。

+0

のようにそれらの一つ一つにRouterモジュールをエクスポートする

const loader = require('require-dir'); var app = express(); var routes = loader('./routes'); for (route in routes){ app.use("/"+route,routes[route]); } 

無用のようなすべてのルートをロードするためにrequire-dirモジュールを使用./app/routes/myRoutes '); 'myRoutesがnullかどうかを確認してください。 –

+0

ファイルが正しくロードされています。この問題は、オブジェクトではなくミドルウェア関数を渡すことに関連しています。 – pittuzzo

+0

エラーは何ですか? –

答えて

2

私の2番目のオプションコード

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

myRoutes.route('/') 
    .get(function(req, res, next){ 
     res.end('myRoute Get'); 
    }) 
    .post(function(req, res, next){ 
     res.end('myRoute Post'); 
    }); 

module.export = myRoutes; 

が正常に動作しています!私は間違った方法で

module.exports = myRoutes; 
0

module.export = myRoutes; 

isnteadこんにちは、これは問題の追加のヒントの詳細ですが、それを書きます。あなたはメインのjsファイルは絶対に多くのルートをロードする必要があり、私はそれらのすべてをインポートすることは多くの作業であることがわかりました。むしろ `VARのmyRoutesの=は「(必要としてみてくださいroutesフォルダ内のすべてのルートを定義すると言うと

var router = express.Router(); 

router.get(....); 

module.exports = router; 
関連する問題