我正在使用Ember CLI的http-mock功能来模拟REST API端点,但是我想在多个Ember CLI应用程序中使用它。我认为插件将是一个很好的解决方案,但是我似乎无法使其正常工作。Ember Addon是否支持http-mock?
这就是我所做的。
创建了一个附加项
$ ember addon my-http-mock
然后我在插件中创建了一个简单的测试端点
$ ember g http-mock users
将其发布到我的github存储库后,我将其导入到package.json中的Ember CLI项目中
"dependencies": {
"my-http-mock": "git://github.com/git-username/my-http-mock"
}
在npm安装之后,我运行了我的应用程序,但是http://localhost:4200/api/users
并没有转到API终结点,而是尝试加载Ember应用程序。
有什么办法可以在多个应用程序中使用http-mock?
您需要使自己的插件实现,serverMiddleware
并且您可以将中间件或路由添加到正在使用的ember-cli应用程序中运行的http-mock。
该挂钩获取传递了一个config
对象,该对象上具有的Express应用程序实例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);
}
}
这是未经测试的代码,但应该可以工作。require all模拟可能会以一种怪异的方式发生冲突,因为它添加了bodyparser中间件和connect-restreamer,并且如果您的应用程序已经具有来自本地http-mock的应用程序,则它可能已经包含了这些内容。试试吧!:)
注意:此答案是关于使用ember-cli 0.1.2的参考
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句