首页 > 解决方案 > nodejs检查url是否遵循有效格式

问题描述

我正在开发一个关于 freecodecamp 的项目,我认为它按预期工作,但我没有通过 1 次测试。

If you pass an invalid URL that doesn't follow the valid http://www.example.com format, the JSON response will contain { error: 'invalid url' }

这是我没有通过的测试。下面是我的代码

async function httpAddShortUrl(req, res) {
const input = req.body;

const isValid = await stringIsAValidUrl(input.url);

if (!isValid) {
    return res.status(400).json({
        error: 'invalid url'
    })
}

return res.status(200).json(addNewUrl(input.url));}
async function stringIsAValidUrl(url) {
    let hostname = '';

    try {
        hostname = new URL(url).hostname;
    }
    catch (err) {
        return false;
    }

    try {
        return await dns.lookup(hostname);
    }
    catch (err) {
        return false;
    }
}

另外,我需要提到在stringIsAValidUrl函数内部我使用的是 dns promise。

标签: node.js

解决方案


我的代码不起作用的问题来自状态代码。我从响应中删除了状态代码,现在它可以工作了。谢谢大家试图帮助我。


推荐阅读