0

我目前正在尝试使用 Node.js 创建一个 URL 缩短微服务。我传递了不正确的字符串来dns.lookup()检查它们是否是有效的 URL,但是它们不是返回错误,而是返回一个地址和一个家庭。

dns.lookup('hello', (err, address, family) => {
                if(err) {
                    res.send('invalid')
                    return
                } else {
                    console.log(`error = ${err}`)
                    console.log(`address = ${address}`)
                    console.log(`family = ${family}`)
                    next()
                }
            });

安慰:

error = null
address = 92.242.132.24
family = 4

如果 URL 无效,我希望它传递一个错误。

编辑:如果有帮助,添加完整代码?

var express = require('express')
var app = express()
var cors = require('cors')
var dns = require('dns')

            dns.lookup('hello', (err, address, family) => {     
                if(err) {
                    console.log(`error = ${err}`)
                    //res.send('invalid')
                    //return
                } else {
                    console.log(`error = ${err}`)
                    console.log(`address = ${address}`)
                    console.log(`family = ${family}`)
                    //next()
                }
            });

var listener = app.listen(3001, function(){
    console.log('working on port 3001')
});
4

1 回答 1

0

事实证明,我的 ISP(Virgin Media)有一个名为 Barefruit Ltd 的第三方,它拦截 dns 错误并发回广告:https ://www.barefruit.com/

与此同时,我通过添加if(err || address == '92.242.132.24')错误处理找到了一种解决方法。

于 2020-03-12T15:44:59.600 回答