Tell us what’s happening:
My code is working perfectly, but the site that FreeCodeCamp uses to check is offline, so the tests never passes. I have already tested my code dozens of times, it works correctly, I have put some console.log() and dicovered that the offline site is: https://timestamp-microservice.freecodecamp.rocks/1603498390913
Your code so far
// IMPORTS
'use strict';
var express = require('express');
var mongo = require('mongodb');
var mongoose = require('mongoose');
var dns = require('dns')
var cors = require('cors');
var app = express();
var port = process.env.PORT || 3000;
// DATABASE
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
const urlSchema = mongoose.Schema({
url: {type: String, required: true}
});
const Url = mongoose.model("Url", urlSchema);
// ROUTES
const regEx = /^https?:\/\//
app.use(cors());
app.use(express.urlencoded());
app.use('/public', express.static(process.cwd() + '/public'));
app.get('/', function(req, res){
res.sendFile(process.cwd() + '/views/index.html');
});
app.post("/api/shorturl/new", (req, res) => {
console.log(req.body.url)
dns.lookup(req.body.url.replace(regEx, ''), (err) => {
if (err !== null) {
res.json({"error": "invalid url"})
} else {
const url = new Url({url: req.body.url});
url.save((err, result) => {
if (err) return console.log(err);
console.log(result);
const obj = {"original_url": result.url, "short_url": result._id}
res.json(obj)
});
}
});
});
app.get("/api/shorturl/:id", (req, res) => {
Url.findById(req.params.id, (err, result) => {
if (err) return res.status(500).json({"error": "invalid url"})
if (!regEx.test(result.url)) {
result.url = `http://${result.url}`;
}
res.redirect(result.url)
})
});
app.listen(port, () => {
console.log('Node.js listening ...');
})
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
.
Challenge: URL Shortener Microservice
Link to the challenge: