Create a Custom URL Shortener using Node.JS and MongoDB
Вставка
- Опубліковано 30 вер 2024
- ► Master NodeJS Playlist: • Master NodeJS
► Download Source Code: www.piyushgarg...
Learn how to build your own URL shortener service using Node.js, Express, and MongoDB. In this video tutorial, we'll show you step-by-step how to set up the server, connect to a MongoDB database, and implement the functionality to shorten and redirect URLs. Perfect for beginners and experienced developers alike!
► Complete Full Stack Web Developer RoadMap 2023: • Complete Full Stack We...
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows developers to run JavaScript on the server side, creating server-side applications with JavaScript.
► My Website: www.piyushgarg...
My Gears
► My Girlfriend: amzn.to/3WD6FRp
► Apple MacBook Laptop: amzn.to/3WBJgQn
► Anker USB Hub: amzn.to/3GhZSr0
► Blue Yeti Microphone: amzn.to/3YKZ9FT
► External 27” Monitor: amzn.to/3Vp3xaO
► Logitech MK295 Wireless Keyboard and Mouse: amzn.to/3DuL1bB
► Seagate Expansion 1TB External HDD: amzn.to/3QMm5Q8
► Tripod: amzn.to/3S4OwK4
► Ring Light: amzn.to/3YLf8DR
Disclaimer: All the links above are affiliate links.
Social Links
► Twitter - / piyushgarg_dev
► LinkedIn - / piyushgarg195
Video Titles
Create Your Own URL Shortener Service with Node.js, Express, and MongoDB
Make a URL Shortener App in Node.js and Express - Beginner's Guide
Making a URL Shortening Application using Node.js, Express and MongoDB
Tags
#nodejs #javascript #expressjs #mongodb #mernstack #developer #api #https #server #javascriptinhindi #webdevelopment #webapp #realtimeapp #serverside #nonblockingio #tech
Node ka real feel iss bnde me Diya h, hats off man❤
I was getting error with both nanoid and shortid , so I used nanoid@^3.0.0
I am not understanding these fucking topics 😅 what to do bro I am not liking can u suggest what u are doing now
Is it working ?
thanks bud
ShortId and nano Id are not working for me. I used another library caller short-unique-id
@@adityabisoyi1502 die with errors and dsa systemdesign and webdev
12:50 nanoid is throwing some error, which can be fixed by dunamically importing it -
async function generateNewShortURL(req, res) {
const body = req.body;
if (!body.url) {
return res.status(400).json({
error: "URL is required."
});
}
const { nanoid } = await import('nanoid');
const shortID = nanoid(8); // Generate the short ID
await URL.create({
shortId: shortID,
redirectURL: body.url,
visitHistory: [],
});
return res.json({ id: shortID });
};
Why is all the talk about a short id library and adding extra dependency for a small work. Use below function
function generateRandomString() {
const length = 8;
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += chars.charAt(Math.floor(Math.random() * chars.length));
}
return result;
}
i copied and pasted your code but still getting error. What should i enter in the argument shortID inside await function?
@@javabrain8480 your id will be the result of above function, execute above function and store it in a variable
Nice bro it worked 🎉
13:08 their was an error with nanoId : you can install this specific version of nanoId to remove this error : npm install nanoid@2.1.11
thanks me later😀
❤❤❤❤
ShortID no longer Supported
Halat patli ho gyi Bhai yeh project banate banate ...
Kahin khudse banana pad Jaye Bina dekhe fir pata nhi kya ho....
It seems quite difficult right now😮
Same here.. is playlist ki Kitne videos dekh lie aapne abhi tak?
Bhai kya Banda haii master haii computer field ka nodejs pe kya command hai iski , wahhhh isee to Google, microsoft aasani se job mil sakti haii ...
Great bro keep going ❤💯🔥
if getting this error ->
res.redirect(entry.redirectedURL);
^
TypeError: Cannot read properties of null (reading 'redirectedURL')
at D:
ode js\URL-Shortner\index.js:27:22
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Node.js v18.16.0
[nodemon] app crashed - waiting for file changes before starting...
solution -
res.redirect('' + entry.redirectURL);
Thanks man
thanks buddy , i have full of respect for you my man , i have wasted 3 hrs to solve that fucking bug
@@devascript I too man, that’s why I posted this comment so that people watching in future won’t have to waste time on this!!
thanks man this bug was way difficult to find I just wasted quite some time on this 😡
Project completed ✅
Maja agya error handle karne mein ❤
thoda complex laga sab ek sath, but it was unbelievable 23 mins k video me itna sab kuch.. Vid - 21✅
bhai I follow your same code and when i start npm the npm is running also but when i run send url from post man it always saying url is required please helpm me out
Now my only goal is to be perfectionist like him while my hands on keyboard. ....how much does it take to be pro in backend?
it was not working because nano id supports common js syntax only upto version 3 and we are using version 5
solution : 1) use module syntax instead
2) degrade to version 3
if(!body.url){ return res.json({error:"URL Needed"}) }
^
TypeError: Cannot read properties of undefined (reading 'url')
Any one ??
Included app.use(express.json()) middleware in the index.js?
and make sure that you add on the top of url roure
if getting this error ->
res.redirect(entry.redirectedURL);
^
TypeError: Cannot read properties of null (reading 'redirectedURL')
at D:
ode js\URL-Shortner\index.js:27:22
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Node.js v18.16.0
[nodemon] app crashed - waiting for file changes before starting...
solution -
res.redirect('' + entry.redirectURL);
thankss can u tell me how you got this solution?
Same Here If You Have Any Solution Than tell me ...
Did u got the solution?
Thank You Brother!!
yeah i also got this error can , solution mila ki nahi bhai
ban gaya
brother you are teach people or self study your tutorial is very fast.
bekar ya banata hai wo banta hai but kyu banate hai ya reson kun sikyaga. Dislike
Sir will you upload react native course please tell me?
shortid has been reprecated, any other package recommended?
ssid
Help Please,
Cannot GET /analytics/0AOgMEv
Resolved??
please keep up the classes free on youtube. They are so helpful.
I made my own nanoid 😅 cauz its not working......
await is not working for res.redirect
can you please help
use async function then you will be able to use await
getting error on postman get request "Cannot GET /url/8iN0AH5hG" also used yr source code but still getting issue how to fix can u help ?
router.get("/analytics/:shortId",handleAnyalytics) try this path
same issue , have you found the solution???
i tried using nanoid and shortid for once post request works but when i try to make second its giving duplicate error, it's not generating unique shortID and get request for /:shortID also does not work
const URL = require("../models/url");
async function handleGenerateNewShortURL(req, res) {
const { nanoid } = await import("nanoid");
const body = req.body;
if (!body.url) return res.status(400).json({ error: "url is required!" });
const shortID = nanoid(8);
await URL.create({
shortId: shortID,
redirectUrl: body.url,
visitHistory: [],
});
return res.json({ id: shortID });
}
module.exports = { handleGenerateNewShortURL };
Import, export 😢😢 game, Bounce chla gya
again url post krne pr duplicate key bar bar aa rha hai
anyone help?
Hi Piyush, I am Vishal doing Practice with the help of this video. I got stuck whiten an error which I am pasting below. could you please help me out to fixed it. Thanks!
C:\Users\Taruna\OneDrive\Desktop\SHORT-URL
ode_modules\mongoose\lib\document.js:3306
this.$__.validationError = new ValidationError(this);
^
ValidationError: url validation failed: shortId: Path `shortId` is required.
so na tumne Schema ke under shortid ko required true kiya hoga na that's right uske wajah se kuch lag rha hai
Osem content Hindi language fabulous teaching method thanks sir
Thanks and welcome
@@piyushgargdev hello sir Abhi Tak youtube pe mern series nahi hai good content with project aap apne chenal pe layiye hindi me
I understood the code, but I didn't understand the purpose of this app
I mean why do we need short url anyways?
kahi kahi pe bahut badi url hoti hai that's why, and hui baat linkedin ki to linkedin pe limit hai url ki to ye waha pe bhi kaam aa sakta hai
Thank you for your great efforts! Really really awesome video.
great video bhaiya what will be the next video?
Wait till 5:00PM 💪🏻
sir postman not connect error 404 but code is same please provde same code
can anyone provide source code ??
I am geeting while redirecting , it says cannot read properties of null
Handle entry ! -> use this code
If(!entry) return res.status(404).json({ message: "short URL not found"});
Iss code ko redirect ke upd paste krdo ❤
Source code address broken
write EPROTO 37039240:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:..\..\..\..\src\third_party\boringssl\src\ssl\tls_record.cc:242:
plz help me out with this
I am not getting the desired output for the last part ...for number of clicks....the postman is showing cannot get ......please help!!
What error are you facing?
I am also facing the same
@@AdityaSingh-yz9g it works fine in website
not with me I am not getting the website when I get request from postman
when i add 1st new entry it add without error but when i add 2nd url it show error
mongoServerError: E11000 duplicate key error collection: urlShortner.urls index: shortID_1 dup key: { shortID: null }
facing same problem bro is you got any solution please share kar dena
it seems to be a problem where you are overwriting, are you sure you are creating new field instead of updating?
same error , did you resolve it ?
same error did you resolve
@@SUBZERO-vx7xs yeah i had to drop the database
18:02 bhai ye entry par hover karne suggestions kaise aaya?
Koi extension ho to batao!!
Few questions:
1. 06:08 Why you used express.Router() instead of express()
2. 12:26 How does this script start working and what is nodemon
3. 11:58 What did you do here, what is this localhost port, and how are you saving the data.
Bro Just watch the tutorial from starting lec-1
bruh you don't even know the basics, I recommend watching from the start dude.
Yes bro watched the node js tutorial from starting these all the basics which you are asking here
sir ak line code ni run ho raha
if getting this error ->
res.redirect(entry.redirectedURL);
^
TypeError: Cannot read properties of null (reading 'redirectedURL')
at D:
ode js\URL-Shortner\index.js:27:22
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Node.js v18.16.0
[nodemon] app crashed - waiting for file changes before starting.
Try this SOLUTION:-
res.redirect(`${entry.redirectURL}`);
exactly bhai, bug fix hua...?
Bug Fix - @abhavgoel9390 🙏🙏
let redirectUrl = entry.redirectURL;
if (!redirectUrl.startsWith('') && !redirectUrl.startsWith('')) {
redirectUrl = '' + redirectUrl;
}
console.log("Redirecting to " + redirectUrl);
return res.status(302).redirect(redirectUrl);
@@knightcore4062 ha
SyntaxError: Unexpected end of JSON input
at JSON.parse () ye error ara hai mera
EROER: npm : The term 'npm' is not recognized as the name of a cmdlet, function, script file, or operable program.
the above error is being thrown by teminal when i am trying to execute the npm start command, pls reply ASAP sir its urgent for me!
console.log("tut was grea, but file naming confused me a lot");
shortid is worked
where is the ui?
ValidationError: url validation failed: redirecturl: Path `redirecturl` is required.
i like the way you explain and also i learning how to read docs
Bhaiya bahut error aa raha hai kuch samajh nahi aa raha hai ki kya kare jabki code same to same likh rahe hai
Bhai Sikh rhe ho node js ?
Ja chod dia ..
Bcoz Maine abhi start Kia hai koi tips le lu
thanks for the tutorial. I am getting an error. while using findOneAndUpdate It returns null because of which redirect is not working. I tried your code also but it is not working
I am also getting the same error
check if u have exported and imported database properly
@@comparisondata2473 yes imported correctly.
it is the problem of res.redirect , it needs a protocol like http or https otherwise it consider the redirect as a relative path - this will throw out an error
Use this instead
const url=entry.redirectURL.startsWith('') || entry.redirectURL.startsWith('') ? entry.redirectURL :`${entry.redirectURL}` ;
res.redirect(url)
facing that error what should i do
res.redirect( redirectURL);
^
ReferenceError: redirectURL is not defined
at D:\Web devlopment\Projects\URL_SHORTNER\index.js:32:20
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
same with me did u solved it ?
I am getting this error when I use generated shortid url in search bar:
res.redirect(entry.redirectURL);
^
TypeError: Cannot read properties of null (reading 'redirectURL')
This might solve the issue: (entry?.redirectURl)
Your two routes are clashing.
@@niteshkushwaha9493 then how to solve this ?
could be an unresolved promise, are you sure you are using async await or .then right?
So For This I will Give Solution which is
const entry = await Url.findOneAndUpdate({
shortId,
}, {
$push: {
visitHistory: {
timestamp: Date.now(),
}
}
});
res.redirect(entry.redirectURL);
})
Error is if you are Give if there are nothing return by entry Because Your name "shortId" is same in Your Schema "shortId " so Your Code will Succesfully Worked
You make really fantastic videos. I like the way of your teaching and writing the code in efficient manner. wow It's really outstanding...
bro no doubt.. you have knowledge in this... but you teach so fast.. any beginner who wants to learn from your series can't catch easily.... disappointed by this.
Bhaiya yah project jaldi complete kar dijiyega please bhaiya
Hanji Zarur
Bhai maza aagya. awesome approach 🥳
so fast
love your playlist
bhai agar null wali error aa rhi hain toh upr bhai n source code diya hain usko copy marke console m entry print karana error dikh jayegiii tumkoo tumhari..
thanks me later.. bye
pls give some basic knowledge on mongodb also ...i feel its going fast in between
I am getting confused because mongodb is not running properly in my project
everytime i run this it shows this
[nodemon] app crashed - waiting for file changes before starting...
i am also getting same as URL.create is not a function
where did you declare urlRoute before importing
bhaiya I'm getting Error: read ECONNRESET on postman even after using express.json() middleware , with the same error msg in the console which you got , help me fix it?
has the error been resolved? i am stuck too.
Hey can anyone help me... I'm getting a... TypeError: Cannot read properties of undefined (reading 'push')
bro replace Router to Router();
on npmjs the shortid you have used is unavailable and now I'm using short unique id but this showing error so pls resolve this and what can i do.........pls check it sir
same
URL Shortner created Done✅ thanks sir jee
have you completed url shortner ..?is shortid package was working..?
Hi there, I am a little bit confused, won't this URL shortner only work on the machine in which npm is running
Deployment ke bad sab machine pe work krega.
what is small letters url in schema here?
anyone following along, I'm getting entry as null and so redirect is not working, pls help
though every time I'm hitting get method visitHistory is updating
Make video on get ip address
Just console.log req.ip ?
Bhaiya can you please make a video on tracking the IP of the client in the analytics. As I was reading about this feature, this seams to be tricky in the case of proxy or load balancers.
How to deploy this on server ?
I am getting error that database not connected
Nice video bhaiya
Bhai kisi ko is theme ka name pata ho to batao yrrrr
I like the way you explain
how to connect it to online mongoDB
Nice
I am getting error while sending the GET request , help me
In the router folder post request is made so you should send the post request
🔥🔥
amazing and simple project for beginners like me✨✨
Node.JS and MongoDB
how handlegenerateshorturl function get req and res objects?
best series ever
make a video on mongodb module in Nodejs
thanks bro for the great video
Interesting video, nice explanation Thanks
Fantastic course. Node js ka feel aa gaya
bhai tune, short url project banye hai..?
i got this error ..ValidationError: url validation failed: shortID: Path `shortID` is required.
me too
,any solutions
@@deepeshkhatri5370 Hi short id and nano id both are not working so pleaes dont use them instead use this code:-
function generateRandomString(n) {
const str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
let randomString = "";
for(let i = 0 ; i < n ; i++) {
const random = Math.floor(Math.random()*str.length);
randomString += str[random];
}
return randomString;
}
module.exports = generateRandomString;
I think you guys might have already gotten the solution since its 10 months
😅
Code is not working
Excellent explanation❤
TypeError: Cannot read properties of null (reading 'redirectURL') , Anyone please help how to resolve it.
Exactly, I m also getting the same error..
@@satyamraj2779 Yep same error
try res.redirect('' + entry.redirectURL);
add while passing the URL. Hope it helps
Congrats For 100k MAn
14:18 terminal clear krke prompt top pr kaise kiya ? koi shortcut key hai qa
CMD K for Mac and CTRL + K for windows
Where is the second video
8:48