我使用Ember CLI的http-mock功能来模拟REST API端点,但我想在多个Ember CLI应用程序中使用它。我认为插件是一个很好的解决方案,但我似乎无法让它工作。 Ember Addon是否支持http-mock?
这就是我的所作所为。
在
上创建了一个添加项$ ember addon my-http-mock
然后我在插件中创建了一个简单的测试端点
$ ember g http-mock users
将它发布到我的github存储库之后,我将它导入了这样的Ember CLI项目,如package.json
"dependencies": {
"my-http-mock": "git://github.com/git-username/my-http-mock"
}
在安装它之后,我运行了我的应用程序,但转到http://localhost:4200/api/users
没有进入API端点,而是尝试加载Ember应用程序。
有没有办法在多个应用程序中使用http-mock?
答案 0 :(得分:3)
您需要让您的插件实现serverMiddleware
,并且您可以将中间件或路由添加到在使用ember-cli应用程序中运行的http-mock。
Advanced Addon customization in ember-cli docs
该钩子传递了一个config
对象,该对象在config.app
上有快递应用程序实例。然后,您可以添加您想要做的任何事情。如果您在插件中使用生成的http-mock,它看起来像这样
{
name: 'my-http-mock',
serverMiddleware: function(config) {
// To require ALL mocks from your addon
var server = require('./server');
server(config.app);
// To require individual mocks
var users = require('./server/mocks/users');
users(config.app);
}
}
这是未经测试的代码但应该有效。要求所有的模拟可能会以一种奇怪的方式发生冲突,因为它添加了bodysarser中间件和connect-restreamer,如果你的应用程序已经有来自它的本地http-mock,它可能已经包含了。试试吧! :)
注意:这个答案是关于使用ember-cli 0.1.2