Tell us what’s happening:
I’m not able to save the URL object into mongodb. I did console.log() to print out the urlObject and its like this:
{ url: ‘https://www.freecodecamp.org’,
_id: 5ddf49fe56afb15c8c19dad4 }
Your code so far
'use strict';
var express = require('express');
var mongo = require('mongodb');
var mongoose = require('mongoose');
var path = require('path');
var cors = require('cors');
var app = express();
// Basic Configuration
var port = process.env.PORT || 3000;
var dns = require('dns')
var bodyParser = require('body-parser')
var request = require('request')
let URLModel = require('./urlModel')
/** this project needs a db !! **/
// mongoose.connect(process.env.MONGOLAB_URI);
mongoose.connect(process.env.MONGO_URI,{useNewUrlParser:true})
mongoose.Promise = global.Promise
app.use(cors());
/** this project needs to parse POST bodies **/
// you should mount the body-parser here
app.use(bodyParser.json())
app.use(bodyParser.urlencoded())
app.use('/public', express.static(process.cwd() + '/public'));
app.get('/', function(req, res){
res.sendFile(process.cwd() + '/views/index.html');
});
// your first API endpoint...
app.get("/api/hello", function (req, res) {
res.json({greeting: 'hello API'});
});
app.post("/api/shorturl/new",(req,res)=>{
let urlString = req.body.url
request({method: 'HEAD', uri:urlString}, function (error, response, body) {
if (!error && response.statusCode == 200) {
let url = new URLModel({
url:urlString
})
url.save((err,results)=> {
if(err){
res.json(err)
}
res.json({'url': urlString, 'short_url': results})
})
}else{
console.log(error)
res.json({"error":"invalid URL"})
}
})
})
app.listen(port, function () {
console.log('Node.js listening ...');
});
Your browser information:
User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
.
Challenge:
URLShortener API Microservices
Link to the challenge:
Link to my project code