gpt4 book ai didi

json - Node.js错误: (node:9748) UnhandledPromiseRejectionWarning: Unhandled promise rejection

转载 作者:行者123 更新时间:2023-12-03 13:23:57 25 4
gpt4 key购买 nike

我试图从Node.js中的“Nightmare ”中获取一个json,然后使用JSON.parse(),但出现以下错误:

(node:9748) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): SyntaxError: Unexpected token ☻ in JSON at position 18509



我的代码:
var nightmare = Nightmare()
.goto('URL')
.wait(10000) // Need wait some time
.evaluate(() => {
return document.body.innerText;
})
.end()
.then((body) => {
var data;
try {
data = JSON.parse(body);
} catch(e) {
console.log(e);
}
callback(null, data);
});

最佳答案

您可以简单地使用JSON.parse函数来检查JSON是否有效。

function validJSON(str) {
try {
// try to parse the JSON
JSON.parse(str);
} catch (e) {
// if not a json
return false;
}
// if it's valid json
return true;
}

它将检查字符串是否为有效的json。现在,您可以将其与nightmareJS一起使用。
const nightmare = Nightmare()
.goto("URL")
.wait(10000) // Need wait some time
.evaluate(() => {
return document.body.innerText;
})
.end()
.then(body => {
// if it's a valid json, send it,
// otherwise send it as a body object
const data = validJSON(body) ? body : { body };
callback(null, data);
});

现在,显示错误是因为您说的是 catch(e) console.log(e)。因此,它只是遵循您的命令。

由于表情符号本身不是有效的json,因此您必须从中生成一个json,或者如果它是json jsont_strong字符串,则必须对其进行解析。

一个有效的json对象可能看起来像这样,
{emoji:  "☻"}

您看到所有引用方式了吗?

关于json - Node.js错误: (node:9748) UnhandledPromiseRejectionWarning: Unhandled promise rejection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225357/

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