gpt4 book ai didi

node.js - fetch-mock 不会模拟我的 fetch

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:18 30 4
gpt4 key购买 nike

这是代码片段:

var fetch = require("node-fetch");
var fetchMock = require("fetch-mock");

function setupMockBlockChainExplorer() {
fetchMock.mock("https://cardanoexplorer.com/api/addresses/summary/DdzFFzCqrhsmagp4fDZpcY9UaBJk4Z8GaDfxqMCSwxPs3PnVoXmJWUZcgAxw3diCHVYauontEfk7YGeAu2LvAwq3aG2XQ8Mtsz7Vc8LA", {
"status" : 200,
"body" : "override"
});
}

async function makeRequest(url, method = "get", body = null, headers = null) {
const res = await fetch(url, {
method: method,
headers: headers,
body: body,
});

return res.json()
};

setupMockBlockChainExplorer();

var req = makeRequest("https://cardanoexplorer.com/api/addresses/summary/DdzFFzCqrhsmagp4fDZpcY9UaBJk4Z8GaDfxqMCSwxPs3PnVoXmJWUZcgAxw3diCHVYauontEfk7YGeAu2LvAwq3aG2XQ8Mtsz7Vc8LA");

// I would expect it to print "override" but it prints the http response from the real request instead
req.then(console.log)

所以我正在尝试覆盖 HTTP 请求,正如您在上面的代码中看到的那样,但我仍然使用 fetch 访问真实的 URL。我已经阅读了 fetch-mock 文档 ( http://www.wheresrhys.co.uk/fetch-mock/installation.html ) 并且我还尝试像这样设置配置:

fetchMock.config = Object.assign(fetchMock.config, {
"fetch": fetch
});

但没有运气。我做错了什么?

最佳答案

我认为问题在于您没有使用 fetch 的“全局”版本。

尝试使用 isomorphic-fetch 而不是 node-fetch

更多解释可以看here .

注意这句话:

使用import 'isomorphic-fetch',而不是import fetch from 'isomorphic-fetch'

关于node.js - fetch-mock 不会模拟我的 fetch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49034907/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com