Back End Development and APIs Projects - URL Shortener Microservice

Tell us what’s happening:
All my tests manually pass but when i enter the link i fail the last 3.

Your project link(s)

require('dotenv').config();
const express = require('express');
const cors = require('cors');
const app = express();
const dns = require("dns");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const { Schema } = mongoose;

mongoose.connect(process.env['MONGO_URI'], { useNewUrlParser: true, useUnifiedTopology: true });

let urlSchema = new Schema({
  original_url: {type: String, required: true}, 
  short_url: {type: String, required: true, default: 0}
});

let urldb = mongoose.model("urldb", urlSchema);

// Basic Configuration
const port = process.env.PORT || 3000;

app.use(cors());
app.use(bodyParser.urlencoded({extended: false}));



app.use('/public', express.static(`${process.cwd()}/public`));

app.get('/', function(req, res) {
  res.sendFile(process.cwd() + '/views/index.html');
});

let id = 0;

// Your first API endpoint
app.post('/api/shorturl', function(req, res) {
  const { url } = req.body;

  const noHTTPSurl = url.replace(/^https?:\/\//, "");

  dns.lookup(noHTTPSurl, (err) => {
    if(err) {
      return res.json({
        error: "invalid url"
      });
    } else {
      id++;

      const link = {
        original_url: "https://" + noHTTPSurl,
        short_url: id
      }
      urldb.create(link, (err, data) => {
        if(err) {
          return console.log(err);
        }
      });
      return res.json(link);
    }
  });
});

app.get('/api/shorturl/:id' , (req, res) =>  {
  const { id } = req.params;
  
  urldb.findOne({short_url: id}, function (err, data) {
    if (err) {
      res.json({
        error: "invalid url"
      });
    }
    else{
      return res.redirect(data.original_url);
    }
  });
});

app.listen(port, function() {
  console.log(`Listening on port ${port}`);
});

This error shows up when i run tasks
image

solution: boilerplate-project-urlshortener - Node.js Repl - Replit

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 OPR/90.0.4480.117

Challenge: Back End Development and APIs Projects - URL Shortener Microservice

Link to the challenge:

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.