2016-04-26 16 views
0

Ich benutze wanger npm pkg, und es funktioniert gut ... Aber ich weiß nicht, wie Sie Dateien trennen, wenn Sie DI verwenden.Dependency Injection mit node.js

Hier sind meine Routen:

var logic = require('./logic'); 
var express = require('express'); 
var bodyParser = require('body-parser'); 


/** 
* 
* Routes /api/v* 
* 
* @param {obj} wagner 
* @returns {obj} 
*/ 
module.exports = function (wagner) 
{ 

    var api = express.Router(); 
    api.use(bodyParser.json()); 

    api.get('/me', logic.me); 

    return api; 
} 

und hier ist logic.me Funktion:

var me = { 
    me: function (req, res) { 
     res.send("TEST"); 
    } 
} 

module.exports = me; 

Was ich tun möchte, ist in der Lage sein wagner in meiner logic.me Funktion zu nutzen ... Wie kann ich das erreichen?

+0

Export kein Objekt, sondern eine Funktion, die 'wagner' akzeptiert als Argument und gibt 'me' Objekt zurück. – zerkms

+0

Können Sie mir ein Beispiel zeigen? –

Antwort

2

Das ist, wie Sie Ihre logic

function meWrapper(wagner) { 
    var me = { 
     me: function (req, res) { 
      res.send("TEST"); 
     } 
    } 

    return me; 
} 

module.exports = meWrapper; 

definieren könnte und das ist, wie Sie es später verwenden würde:

module.exports = function (wagner) 
{ 

    var api = express.Router(); 
    api.use(bodyParser.json()); 

    api.get('/me', logic(wagner).me); 

    return api; 
} 
+0

Großartig, es funktioniert! Vielen Dank –