【发布时间】:2021-02-09 07:20:52
【问题描述】:
我在运行时收到此错误,但似乎无法解决。
TypeError: data[key].trim is not a function
功能就是这个
const generateSignature = (data, passPhrase = null) => {
// Create parameter string
let pfOutput = "";
for (let key in data) {
if (data.hasOwnProperty(key)) {
if (data[key] !== "") {
pfOutput += `${key}=${encodeURIComponent(data[key].trim()).replace(
/%20/g,
" + "
)}&`;
}
}
}
// Remove last ampersand
let getString = pfOutput.slice(0, -1);
if (passPhrase !== null) {
getString += `&passphrase=${encodeURIComponent(passPhrase.trim()).replace(
/%20/g,
"+"
)}`;
}
return crypto.createHash("md5").update(getString).digest("hex");
};
我不知道如何解决这个问题
【问题讨论】:
-
发生错误时
data[key]的值是多少?它似乎不是一个字符串,但我们可以满怀信心地说。除了错误消息所说的内容之外,没有任何信息。修复它的方法是避免在非字符串上调用字符串方法 - 要么避免使用非字符串,要么在修剪和替换时跳过它们。我不知道这里的目标是什么。 -
你运行的是哪个版本的 Node.js,以防万一?
-
我使用的是 npm 5.6.0 版本
-
npm 与 node 有不同的版本。它们是两个不同的应用程序。试试
node --version -
节点版本为v15.8.0
标签: javascript node.js trim