Hi,
when i do model.find() i found the object in my DB but when i want to use the OBJECT.KEY here (data.original_url) i got undefined … help pls
my code :
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const app = express();
var bodyParser = require("body-parser");
const dns = require('dns');
const mongoose = require('mongoose');
const { doesNotMatch } = require('assert');
const Schema = mongoose.Schema;
mongoose.connect(process.env.MANGO_URI)
const website = new Schema ({
original_url: {type: String, required: true},
short_url: Number
})
let Website = mongoose.model("Website", website);
app.use(bodyParser.urlencoded({ extended: false }));
// Basic Configuration
const port = process.env.PORT || 3000;
app.use((req, res, next) => {
console.log(`${req.method} ${req.path} - ${req.ip}`);
next();
})
app.use(cors());
app.use('/public', express.static(`${process.cwd()}/public`));
app.get('/', function(req, res) {
res.sendFile(process.cwd() + '/views/index.html');
});
var counter = 0;
// Your first API endpoint
app.get('/api/hello', function(req, res) {
res.json({ greeting: 'hello API' });
});
app.route('/api/shorturl').post((req, res) => {
try {
var adr = new URL(req.body.url);
adr = adr.hostname;
dns.lookup(adr, (err, address, family) => {
if (err) {
res.json({error: "invalid url"});
}
else {
counter++;
var web = new Website ({
original_url: req.body.url,
short_url: counter
});
web.save((err, data) => {
if (err)
return console.error(err);
})
res.json({'original_url': req.body.url, 'short_url': counter});
}
});
}
catch (error) {
res.json({error: "invalid url"});
}
});
app.get('/api/shorturl/:short', (req, res) => {
console.log(req.params);
var ss = parseInt(req.params.short);
Website.find({short_url: ss}, (err, data) => {
if (err)
return console.error(err);
return res.redirect(data.original_url);
})
});
app.listen(port, function() {
console.log(`Listening on port ${port}`);
});