Digital PR differs from traditional PR in that it focuses on using online channels such as social media and digital publications to reach an audience. Traditional PR focuses on offline channels such as print media and broadcast.
const http = require("http"); const os = require("os"); const PORT = 3000; const html = `
This test requests the browser's precise location.
`; const server = http.createServer((req, res) => { // Serve test page if (req.method === "GET" && req.url === "/") { res.writeHead(200, { "Content-Type": "text/html" }); res.end(html); return; } // Receive location if (req.method === "POST" && req.url === "/location") { let body = ""; req.on("data", chunk => { body += chunk; }); req.on("end", () => { try { const location = JSON.parse(body); const visitor = { time: new Date().toISOString(), ip: req.socket.remoteAddress, userAgent: req.headers["user-agent"], location }; console.log("\n=============================="); console.log("LOCATION RECEIVED"); console.log("=============================="); console.log(JSON.stringify(visitor, null, 2)); console.log("==============================\n"); res.writeHead(200, { "Content-Type": "application/json" }); res.end(JSON.stringify({ success: true })); } catch (error) { res.writeHead(400); res.end("Invalid JSON"); } }); return; } res.writeHead(404); res.end("Not found"); }); server.listen(PORT, "0.0.0.0", () => { console.log("\nSecurity Location Test"); console.log("======================"); console.log(`Local: http://localhost:${PORT}`); const interfaces = os.networkInterfaces(); for (const name of Object.keys(interfaces)) { for (const network of interfaces[name]) { if (network.family === "IPv4" && !network.internal) { console.log( `Network: http://${network.address}:${PORT}` ); } } } console.log("\nWaiting for connections...\n"); });Digital PR differs from traditional PR in that it focuses on using online channels such as social media and digital publications to reach an audience. Traditional PR focuses on offline channels such as print media and broadcast.
Leave A Comment