2017-05-16 6 views
0

Ich möchte meine Passport-Variable an meine Router-Klasse übergeben, aber ich kann nicht herausfinden, wie das geht.Variable übergeben, um Router auszugeben

Server.js:

const session = require('express-session'); 
const path = require('path'); 
const passport = require('passport'); 
const routes = require('./routes')(passport); //pass variable here 
const bodyParser = require('body-parser'); 
const cookieParser = require('cookie-parser'); 
const mongoose = require('mongoose'); 
const configDB = require('./config/database.js'); 
const flash = require('connect-flash'); 
const app = express(); 

mongoose.connect(configDB.url); 

app.use(express.static(path.join(__dirname, '/dist'))); 
app.use(cookieParser()); 
app.use(bodyParser.urlencoded({extended: true})); 
app.use(bodyParser.json()); 
app.use(session({ 
    name: 'sessionid', 
    secret: 'changethis', 
    resave: false, 
    saveUninitialized: true, 
    cookie: {secure: true} 
})); 
app.use(passport.initialize()); 
app.use(passport.session()); 
app.use(flash()); 
app.use(routes); 

app.listen(8080, function() { 
    console.log('App started on port 8080'); 
}); 

/routes/index.ejs: (ich den Pass Variable hier wollen).

const routes = require('express').Router(); 
const path = require('path'); 
const api = require('./api'); 

routes.use('/api', api); 

routes.get('/*', function (req, res) { 
    res.sendFile(path.join(path.dirname(require.main.filename) + '/dist/index.html')); 
}); 

module.exports = routes; 

Was muss ich in der index.ejs tun, um die Passvariable zu erhalten?

Antwort

2

Sie müssen Ihre /routes/index.ejs ändern, um die Werksfunktion zu exportieren.

const path = require('path'); 
const api = require('./api'); 
module.exports = function factory(yourVar) { 
    const routes = require('express').Router(); 
    routes.use('/api', api); 
    routes.get('/*', function (req, res) { 
     res.sendFile(...); 
    }); 
    return routes; 
} 
+0

Danke. Es hat vorher nicht funktioniert, weil ich vergessen habe, den Router zurückzugeben. –

Verwandte Themen