wagner.invoke不承认依赖

时间:2017-02-13 14:08:20

标签: javascript node.js express dependency-injection mean-stack

背景

我正在制作一个小的MEAN堆栈应用程序,我在我的测试应用程序中使用wagner-core作为依赖注入器。

一切都很顺利,除了我甚至无法启动服务器......

问题&代码

我的测试应用以index.js开头。这个文件引导一切。然后我将models.js传递给wagner,并使用api.js文件终止,因此我的服务器知道要使用哪些路由。

index.js

"user strict";

let express = require("express");
let wagner = require("wagner-core");

require("./models", wagner);

let app = express();

app.use("/api/v1", require("./api")(wagner));

app.listen(8080);
console.log("Listening on port 8080");

models.js

"use strict";

let mongoose = require('mongoose');

module.exports = function(wagner) {
    mongoose.connect("MY_CONN_STR_HERE");

    let  Mod = mongoose.model("Mod", require("./schemas/mod.js"), "mods");

    let models = {
        Mod
    };

    wagner.factory('Mod', function() {
        return Mod;
    });

    return models;
};

api.js

"use strict";

let express = require('express');

module.exports = function(wagner) {
  var api = express.Router();

  api.get('/Mod/', wagner.invoke( function(Mod) {
    return (req, res) => {
      res.json({"test": true});
    };
  }));

  return api;
};

此处的问题是,对于我的api.js文件,请勿识别我在Mod函数中传递的wagner.invoke参数。由于某种原因,它没有连接:

错误

Error: No such dependency: Mod <- 
    at dfs (/home/ubuntu/workspace/server/node_modules/wagner-core/lib/topologicalSort.js:34:11)

问题

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我发现了问题......问题发生在index.jsrequire("./models", wagner);应该是require("./models")(wagner);

我希望它可以帮助其他人面对同样的错误。