2017-05-04 5 views
0

Express v4.15.2を使用していて、npmバージョンが3.10.10です。Express V4でルートチェインが機能していない

ルート/ route.js

var express=require('express'); 
var router=express.Router(); 
var app=express(); 

var user=require('../controller/controller'); 
module.exports=function(app){ 
app.route('/api/user').get(user.login); 
}; 

コントローラ/ controller.js

var express=require('express'); 
var app =express(); 

exports.login=function(req,res,next){ 

res.json({"msg":"Hello"}); 

}; 

サーバー:私は下記の連鎖のルートを使用しようとしています。この中 は私のコードです。 js

var express=require('express'); 
var app =express(); 
var router=require('./module/route/route'); 

app.use('/',router); 



app.listen(3000,function(req,res){ 
console.log('Server Started'); 
}); 

上記は私のルートとコントローラコードです。 getpostputdeleteを単一のAPIに使用するルートチェーンを作成しようとしています。つまり、/api/userです。

しかし、それは動作しません、私のAPIはヒットしていないし、ログもエラーを表示していません。

この問題を解決するのを手伝ってください。あなたはアプリではなく、route.jsで無名関数をエクスポートしたい

おかげ

+0

:その場合はあなただけに変更します。 'app.route( '/ API /ユーザー')(user.login).post(user.update)を取得します。 delete(user.remove); 'など? –

+0

はい私は同じです –

答えて

0

var express=require('express'); 
var router=express.Router(); 
var app=express(); 

var user=require('../controller/controller'); 

app.route('/api/user').get(user.login); 

module.exports = app; 

また、実際にルート内にappのすべての機能が必要な場合は、たぶんあなたはルータオブジェクトを代わりに使うべきです。あなたはこのようにそれを使用しますか

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

var user=require('../controller/controller'); 

router.route('/api/user').get(user.login); 

module.exports = router; 
+0

はい、私は同じを試みたが、私のためにも動作しません。 –

+0

あなたは正しい経路を設定していますか? router = require( './ module/route/route');?あなたの説明に基づいて( './route/route')する必要があります。 – tomtom

+0

私の問題は解決されました。私は 'server.js'を変更する必要があります。私は 'app.use( '/'、router);を' router(app) 'に置き換えました。 –

関連する問題