2016-11-01 9 views
0

私はexpress.jsを使用しています。私のルートを別のファイルに分けようとしています。Express.jsルートを別々のファイルに分割する

これは私の./app.coffeeからの抜粋です:

viewsRouter = express.Router() 

routesCallingViews = require('./app/routes/callingViews') 

app.use '/', routesCallingViews.showApp viewsRouter, user, data 
app.use '/', routesCallingViews.showSignUpForm viewsRouter 
app.use '/', routesCallingViews.showLogInForm viewsRouter 

よう./app/routes/callingViewsに見える:私はこのエラーを取得する

module.exports = 

    showApp: (router, user, data) -> 
    router.get '/', user.isSignedIn, (req, res) -> 
     ... 

    showSignUpForm: (router) -> 
    router.get '/signup', (req, res) -> 
     ... 

    showLogInForm: (router) -> 
    router.get '/login', (req, res) -> 
     ... 

Error: Route.get() requires callback functions but got a [object Undefined] 

答えて

0

一般的な方法は、あなたが作成する場所、関連するすべてのルートがモジュールを分離するために抽出することですしようとしている何をするなら、私に知らせてルータのと輸出インスタンス、のようなもの:

// foo.js 
'use strict' 

const express = require('express') 
const router = express.Router() 

router.get('/', (req, res, next) => { ... }) 
router.post('/bar', (req, res, next) => { ... }) 
... 

module.exports = router 

次にどんな(通常server.jsから)場所からあなたが持っているすべてのルータをフックするだろう、のようなもの:

const fooRoutes = require('./foo') 
app.use('/foo', fooRoutes) 

これで終了します:

GET /foo 
POST /foo/bar 
関連する問題