Javascript 如何修复';无法读取属性';包括';未定义的';在nodejs?[文字]
我正在设置一个新服务器,想运行一个nodejs脚本来协调。但问题是,;它在脚本启动/运行后发布错误 我曾尝试在GitHub上联系“author”,但没有得到任何答复,以便对其进行修复,我也曾尝试在我在线的其他服务器上进行测试,但它显示了相同的错误。(包括nodejs/npm版本的降级。) 我找到的代码来自此GitHub页面: 下面是错误,我在将nodejs&npm更新到最新版本后得到的Javascript 如何修复';无法读取属性';包括';未定义的';在nodejs?[文字],javascript,node.js,linux,Javascript,Node.js,Linux,我正在设置一个新服务器,想运行一个nodejs脚本来协调。但问题是,;它在脚本启动/运行后发布错误 我曾尝试在GitHub上联系“author”,但没有得到任何答复,以便对其进行修复,我也曾尝试在我在线的其他服务器上进行测试,但它显示了相同的错误。(包括nodejs/npm版本的降级。) 我找到的代码来自此GitHub页面: 下面是错误,我在将nodejs&npm更新到最新版本后得到的 (节点:23692)未处理的PromisejectionWarning:TypeError:无法读取未定义的属
(节点:23692)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“includes”
at/home/mikkel/bots/csgo/app.js:87:24
在
在进程中。_tick回调(内部/process/next_tick.js:189:7)
(节点:23692)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:13)
我不知道,这个错误意味着什么,因为我是noob to nodejs
npm/节点的版本:
节点:v8.16.1
净现值:6.12.0
我必须改变的是什么。我对javascript或nodejs没有感觉。脚本自由地放在GitHub上
更新:编辑日期:2019年10月10日-15:28:
日期格式是什么例子;在github上,它从check-update.txt读取以下格式:10/23/2018(例如) 似乎它不适合我在Discord上发布。(如果不这样做,它应该这样做) 例如:
// Checking every 10 seconds if there's a new update, and if it's been posted already
setInterval(getUpdate, 10000);
问题是:
// Do nothing if update has been posted already.
}
})();
}
也许我应该从discord开发者那里创建一个新的机器人?更改它。请求url
http
到https
,isoDate
到publidate
。源内容中没有isoDate
//设置RSS源URL
let feed=wait rssParser.parseURL('https://blog.counter-strike.net/index.php/category/updates/feed/');
//将项目设置为变量
feed.items.forEach(item=>{
if(item.pubDate.includes(`${date}`)){
updateTitle=item.title;
updateURL=item.link;
updateContent=item.contentHtml;
updateDate=item.pubDate | |“”;
}
});
更改它。请求urlhttp
到https
,isoDate
到publidate
。源内容中没有isoDate
//设置RSS源URL
let feed=wait rssParser.parseURL('https://blog.counter-strike.net/index.php/category/updates/feed/');
//将项目设置为变量
feed.items.forEach(item=>{
if(item.pubDate.includes(`${date}`)){
updateTitle=item.title;
updateURL=item.link;
updateContent=item.contentHtml;
updateDate=item.pubDate | |“”;
}
});
您发布的错误如下所示:
(node:23692) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'includes' of undefined
at /home/mikkel/bots/csgo/app.js:87:24
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
因此,updateDate
对象必须以某种方式未定义。通过查看,我们看到它只设置在第70行的forEach循环中,但它位于该循环中的if语句中
feed.items.forEach(item => {
if (item.isoDate.includes(`${date}`)) {
updateTitle = item.title;
updateURL = item.link;
updateContent = item.contentHtml;
updateDate = item.isoDate;
}
});
如果循环从未运行,则永远不会设置updateDate
。如果循环中的每个项目都没有在其isoDate
属性中包含日期,则将永远不会设置updateDate
因此,我们必须警惕这些情况
通过将第87行更改为以下内容,我们可以添加一个条件,即updateDate
已设置为某物:
if (updateDate && updateDate.includes(`${date}`)) {
您发布的错误如下所示:
(node:23692) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'includes' of undefined
at /home/mikkel/bots/csgo/app.js:87:24
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
因此,updateDate
对象必须以某种方式未定义。通过查看,我们看到它只设置在第70行的forEach循环中,但它位于该循环中的if语句中
feed.items.forEach(item => {
if (item.isoDate.includes(`${date}`)) {
updateTitle = item.title;
updateURL = item.link;
updateContent = item.contentHtml;
updateDate = item.isoDate;
}
});
如果循环从未运行,则永远不会设置updateDate
。如果循环中的每个项目都没有在其isoDate
属性中包含日期,则将永远不会设置updateDate
因此,我们必须警惕这些情况
通过将第87行更改为以下内容,我们可以添加一个条件,即updateDate
已设置为某物:
if (updateDate && updateDate.includes(`${date}`)) {
如果(item.isoDate.includes(`${date}`),则无法读取未定义“>
的属性includes
){
那里,item.isoDate
似乎是未定义的
@Cerbrus,我明白你的意思。但这怎么会是问题呢?-这对我来说很奇怪。添加额外的条件,比如updateDate不是空的/未定义的,并且具有ex:的长度(updateDate&&updateDate.length&&updateDate.includes(
${dateDate})
如果isoDate
未定义,它如何调用.includes
呢?它不能。includes用于数组或字符串类型“无法读取未定义的属性includes
”>如果(item.isoDate.includes(`date}')){
那里,item.isoDate
似乎是未定义的
@Cerbrus,我明白你的意思。但这怎么会是问题呢?-这对我来说很奇怪。添加额外的条件,比如updateDate不是空的/未定义的,并且具有ex:的长度(updateDate&&updateDate.length&&updateDate.includes(
${dateDate})
如果isoDate
未定义,它如何调用。includes
呢?它不能。includes用于数组或字符串typesHi@IMP1,谢谢你提供的信息。我已经更新了,没有更多错误。但是它应该“发布”一个关于discord的更新。因为有一个更新(今天09-10-19-取决于日期的格式)所以实际上,它应该发布“更新”来自RSS的自动>>-示例。所以不知道,关于我应该更新日期格式化的check-update.txt:bash 2019.10.09 10.09 2019 10/09/2019 09/10/2019或09/10/19
Hi@mrc4tt:我不太确定你在问什么。不过,今天是第10天。这会有区别吗?如果你手动设置查找日期?若要执行此操作,请在第64行中添加一行类似的内容。date=“2019-10-09”。您好@IMP1,谢谢您提供的信息。我已经更新了它,没有更多错误。但它应该是“po”