app.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const cluster = require("node:cluster");
  2. const os = require("node:os");
  3. const process = require("node:process");
  4. const { SimpleRouter, createServer } = require("velocy");
  5. if (cluster.isPrimary) {
  6. console.log(`Primary ${process.pid} is running`);
  7. const numCPUs = os.cpus().length;
  8. for (let i = 0; i < numCPUs; i++) {
  9. cluster.fork();
  10. }
  11. cluster.on("exit", (worker) => {
  12. console.log(`worker ${worker.process.pid} died`);
  13. process.exit(1);
  14. });
  15. } else {
  16. const router = new SimpleRouter();
  17. router.get("/plaintext", (req, res) => {
  18. let p = "Hello, World!";
  19. res.writeHead(200, {
  20. "content-type": "text/plain",
  21. "content-length": p.length,
  22. Server: "Velocy",
  23. });
  24. res.end(p);
  25. });
  26. router.get("/json", (req, res) => {
  27. let p = JSON.stringify({ message: "Hello, World!" });
  28. res.writeHead(200, {
  29. "content-type": "application/json",
  30. "content-length": p.length,
  31. Server: "Velocy",
  32. });
  33. res.end(p);
  34. });
  35. createServer(router).listen(8080);
  36. console.log(`Worker ${process.pid} started`);
  37. }