node.js - NODEJS URL 响应状态为 404 时如何执行操作?
问题描述
我正在制作一个不和谐的机器人,我想制作一个发送 3 个随机字符的命令,然后将这些字符放在 url 的末尾以检查它是否存在(在这种情况下,我使用 steam 帐户来检查 id 是否被占用) 但我需要这样做,以便当响应状态为 404 时,它会发送一条消息说 ID 未被占用。
var urlExists = require('url-exists');
//3CHAR
else if (message.content == "+3char") {
message.channel.send(getRandomString(3));
var theURL = "https://steamcommunity.com/id/" + message.channel.lastmessage;
urlExists("theURL");
if (response.status != 404) {
return;
}
else {message.channel.send("`URL is not taken`");}
}
这就是我现在所拥有的,但是我收到错误“未定义响应”。任何建议将不胜感激!
解决方案
你遇到了async
问题。您需要将回调函数传递给urlExists
. 一旦urlExists
对象完成执行,回调函数就会执行。
https://www.npmjs.com/package/url-exists
var urlExists = require('url-exists');
urlExists('https://www.google.com', function(err, exists) {
console.log(exists); // true
});
urlExists('https://www.fakeurl.notreal', function(err, exists) {
console.log(exists); // false
});
在您的情况下,您需要执行以下操作:
var urlExists = require('url-exists');
var theURL = "https://steamcommunity.com/id/" + message.channel.lastmessage;
urlExists("theURL", (err, exists) => {
if (err) {
// handle error
}
if (exists) {
message.channel.send("`URL is not taken`");
} else {
// do something when the URL does not exist
}
});
推荐阅读
- javascript - 如何修复“无法解析 ComponentName 的所有参数”
- maven - 从maven项目中获取jar
- node.js - json-server 不使用中间件文件中提供的代码
- javascript - 当表单下载目标为此 iFrame 的文件时,未调用 iFrame onload
- django - 在视图中设置存储桶 Django google storage
- php - 如何在laravel中修改eloquent返回的数组结构
- python - 使用python编写csv文件时如何添加标题
- odoo - 条码不显示
- testcontainers - 如何等到 Kafka 容器启动
- google-tag-manager - 在谷歌标签管理器中点击某个类的元素时如何触发标签?