2017-12-12 15 views
0

私は私のNode.jsサーバーを起動しようとしている、私は2つのファイルがあります:私のapp.jsExpressのルートは問題

const express = require('express'), 
    app = express(), 
    bodyParser = require('body-parser'), 
    morgan = require('morgan'), 
    consign = require('consign'), 
    cors = require('cors'), 
    passport = require('passport'), 
    passportConfig = require('./passport')(passport), 
    jwt = require('jsonwebtoken'), 
    config = require('./index.js'); 

    app.use(express.static('.')); 
    app.use(bodyParser.urlencoded({extended: false})); 
    app.use(bodyParser.json()); 
    app.use(morgan('dev')); 
    app.use(cors()); 
    app.use(passport.initialize()); 



app.set('playersecret', config.secret); 
consign({ cwd: 'services' }) 
.include('Player/app/setup/') 
.then('Player/app/api/') 
.then('Player/app/routes/') 
.into(app); 
module.exports = app; 

をして

const models = require('@Player/app/setup'); 

module.exports = (app) => { 
const api = app.PlayerAPI.app.api.auth; 
app.route('/',).get((req,res) => res.send('Player API')); 
app.post('/api/auth/',api.login(models.User)); 
} 

を/app/routes/auth.js私が理解しているように、私のルートはapp.jsにインポートされません。なぜなら、私はapp.jsのコードを書いても問題ないからです。

どうすればインポートできますか?

答えて

0

あなたが定義したあなたのauth.jsのルートを持っている方法は、あなたがあなたのapp.jsで次の操作を実行する必要がありますので、それは、appインスタンスを受け入れることである:

const express = require('express') 
const authRoutes = require('./app/routes/auth.js') 

const app = express() 

// ... 

authRoutes(app) 

また、あなたはちょうど私がいることを見つけることが必要とインライン化することができます厄介な(個人的な意見):

const express = require('express') 
const app = express() 

// ... 

require('./app/routes/auth.js')(app) 

より良いアプローチは次のようになりますが、routerオブジェクトをエクスポートします

/app/routes/auth.js

const express = require('express') 
const models = require('@Player/app/setup') 
const api = require('./path/to/PlayerAPI.js') 

const router = express.Router() 

router.get('/', ...) 
router.post('/', api.login(models.User)) 

module.exports = router 

app.js

const express = require('express') 
const authRoutes = require('./app/routes/auth.js') 
const app = express() 

// ... 

app.use('/api/auth', authRoutes) 
0

あなたはJSファイルをインポートしたい場合は、以下を示してあなたのapp.jsの先頭にファイル名を含める必要があります。

var express = require('express') var auth = require(./app/routes/auth.js)

あなたはexpress.js公式文書ファイルにはJavaScriptファイルでインポートの詳細を知ることができます。