我想测试我的http服务,但出现错误。所以,我的测试文件
api.js
import axios from 'axios';
export const api = axios.create();
Run Code Online (Sandbox Code Playgroud)
fetchUsers.js
import api from './api';
export const fetchUsers = (params) api.get('/api/users', { params })
.then(({data}) => data)
Run Code Online (Sandbox Code Playgroud)
fetchUsers.spec.js
import MockAdapter from 'axios-mock-adapter'
import api from './api';
const mock = new MockAdapter(api);
describe('fetchUsers', () => {
it('should send request', (done) => {
const data = { data: ['user'] };
mock.onGet('/api/users').reply(200, data);
fetchUsers().then((response) => {
expect(response).toEqual(data.data);
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
但是我在这里出错
错误:在连接时将ECONNREFUSED 127.0.0.1:80连接到TCPConnectWrap.after [as oncomplete](net.js:1158:14)
如果我将api.js中的axios.create()替换为axios,则它可以正常工作。但是如何测试创建的axios实例呢?创建它时,我需要在那里添加参数。
有人可以帮忙吗?
我正在尝试在Angular应用程序中为http服务实现缓存.
我的代码在服务countriesService
public get(): Observable<any> {
return this.http.get(`/countries`, {})
.map(res => res.json())
.publishReplay(1)
.refCount();
}
Run Code Online (Sandbox Code Playgroud)
在组件CountriesComponent中,我有
ngOnInit() {
this.countriesService.get()
.subscribe(res => {
this.countries = res.countries;
});
}
Run Code Online (Sandbox Code Playgroud)
我在路由配置中加载组件
const appRoutes: Routes = [
{ path: 'countries', component: CountriesComponent },
{ path: 'cities', component: CitiesComponent },
];
Run Code Online (Sandbox Code Playgroud)
每当我从城市返回国家时,我都会看到=>/countries的请求.它不应该激活请求,因为它应该被缓存(这是它在角度1.x中使用promises的工作方式),而不是角度4和rxJs.
我有html,例如
<body><div id="main"><p>some text</p></div></div></div></body>
Run Code Online (Sandbox Code Playgroud)
当你点击外部#main时如何在jquery上制作,但在标签体内有一些动作?
$(":not(#main)").click({..});
Run Code Online (Sandbox Code Playgroud)
不工作