Posts

Showing posts from March, 2025

TOTAL CODE

 INDEX.JS const express = require ( "express" ); const app = express (); const mongoose = require ( "mongoose" ); const path = require ( "path" ); const Chat = require ( "./models/chat.js" ); const methodOverride = require ( "method-override" ); app . set ( "views" , path . join ( __dirname , "views" )); app . use ( express . static ( path . join ( __dirname , "public" ))); app . set ( "view engine" , "ejs" ); app . use ( express . urlencoded ({ extended : true })); app . use ( methodOverride ( "_method" )); main ()   . then (() => {     console . log ( "connection successful" );   })   . catch (( err ) => {     console . log ( err );   }); async function main () {   await mongoose . connect ( "mongodb://127.0.0.1:27017/whatsapp" ); } app . get ( "/" , ( req , res ) => {   res . send ( "server working" )...

DELETE ROUTE

Image
 INDEX.EJS     </ form >       < form method = "post" action = "/chats/ <%= chat . _id %> ?_method=delete" >         < button > Delete </ button >       </ form > INDEX.JS / DELETE ROUTE   app . delete ( "/chats/:id" , async ( req , res ) => {     let { id } = req . params ;     let deletedChat = await Chat . findByIdAndDelete ( id );     console . log ( deletedChat );     res . redirect ( "/chats" );   })

UPDATE ROUTE

Image
EDIT.EJS <! DOCTYPE html > < html lang = "en" >   < head >     < meta charset = "UTF-8" />     < meta name = "viewport" content = "width=device-width, initial-scale=1.0" />     < title > Edit chat </ title >   </ head >   < body >     < form method = "post" action = "/chats/ <%= chat . _id %> ?_method=put" >     < h3 > Edit Chat: <%= chat . _id %> </ h3 >     < p > Chat sent from: < b > <%= chat . from %> </ b > to < b > <%= chat . to %> </ b ></ p >     < textarea name = "msg" rows = "7" cols = "25" > <%= chat . msg %> </ textarea >     < button > Save </ button > </ form >   </ body > </ html > INDEX.JS const methodOverride = require ( "method-override" ); app . use ( methodOverride (...

EDIT ROUTE

Image
 INDEX.JS // EDIT ROUTE app . get ( "/chats/:id/edit" , async ( req , res ) => {   let { id } = req . params ;   let chat = await Chat . findById ( id );   res . render ( "edit.ejs" ,{ chat }); }) INDEX.EJS   < form method = "get" action = "/chats/ <%= chat . _id %> /edit" >         < button > Edit </ button >       </ form > EDIT.EJS <! DOCTYPE html > < html lang = "en" >   < head >     < meta charset = "UTF-8" />     < meta name = "viewport" content = "width=device-width, initial-scale=1.0" />     < title > Edit chat </ title >   </ head >   < body >     < h3 > Edit Chat: <%= chat . _id %> </ h3 >     < p > Chat sent from: < b > <%= chat . from %> </ b > to < b > <%= chat . to %> </ b ></ p ...

Using Date

Image
INDEX.EJS   <% for ( let chat of chats ) { %>     < div class = "Chat" >       < p > From: < i > <%= chat . from %> </ i ></ p >       < div class = "msg" >< p > Message: <%= chat . msg %> </ p ></ div >       < p > Received by: < i > <%= chat . to %> </ i ></ p >       < hr />       < p > <%= chat . created_at . toString (). split ( " " ) [ 4 ] %> </ p >       < p > <%= chat . created_at . toString (). split ( " " ). slice ( 0 , 4 ). join ( " " ) %> </ p >     </ div >     < br />     <% } %>  

CREATE ROUTE

Image
INDEX.JS app . use ( express . urlencoded ({ extended : true })); // NEW ROUTE app . get ( "/chats/new" , ( req , res ) => {   res . render ( "new.ejs" ); }); // POST ROUTE app . post ( "/chats" , ( req , res ) => {   let { from , to , msg } = req . body ;   let newchat = new Chat ({     from : from ,     msg : msg ,     to : to ,     created_at : new Date (),   });   newchat     . save ()     . then (( res ) => {       console . log ( "chat was saved" );     })     . catch (( err ) => {       console . log ( err );     });   res . redirect ( "/chats" ); }); INDEX.EJS <! DOCTYPE html > < html lang = "en" >   < head >     < meta charset = "UTF-8" />     < meta name = "viewport" content = "width=device-width, initial-scale=1.0" />     < t...

NEW ROUTE

Image
// NEW ROUTE app . get ( "/chats/new" , ( req , res ) => {   res . render ( "new.ejs" ); });   NEW.EJS <! DOCTYPE html > < html lang = "en" >   < head >     < meta charset = "UTF-8" />     < meta name = "viewport" content = "width=device-width, initial-scale=1.0" />     < title > Add a new Chat! </ title >   </ head >   < body >     < h2 > Add a new chat! </ h2 >     < form >       < input placeholder = "Enter your name" name = "from" />       < br />< br />       < textarea name = "msg" > Write you're message </ textarea >       < br />< br />       < input placeholder = "add receiver" name = "to" />       < br />< br />       < button > Create new ch...