From 4b67d0573268a4a1eec3d678da2389f8c9d7f0d2 Mon Sep 17 00:00:00 2001 From: philwing100 Date: Tue, 18 Jun 2024 07:44:19 -0500 Subject: [PATCH] Understanding basics of node.js --- backend/demofile1.html | 6 +++++ backend/myfirstnodefile.js | 20 ++++++++++++---- backend/package-lock.json | 40 +++++++++++++++++++++++++++++++ backend/package.json | 2 ++ backend/summer.html | 1 + backend/winter.html | 1 + jsconfig.json | 1 + package-lock.json | 49 +++++++++++++++++++++++++++++++++++--- package.json | 2 ++ 9 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 backend/demofile1.html create mode 100644 backend/package-lock.json create mode 100644 backend/summer.html create mode 100644 backend/winter.html diff --git a/backend/demofile1.html b/backend/demofile1.html new file mode 100644 index 0000000..ec89dbe --- /dev/null +++ b/backend/demofile1.html @@ -0,0 +1,6 @@ + + +

My Header

+

AUGH

+ + \ No newline at end of file diff --git a/backend/myfirstnodefile.js b/backend/myfirstnodefile.js index d5cb015..0cc819f 100644 --- a/backend/myfirstnodefile.js +++ b/backend/myfirstnodefile.js @@ -1,6 +1,18 @@ var http = require('http'); +var url = require('url'); +var fs = require('fs'); -http.createServer(function (req, res) { - res.writeHead(200, {'Content-Type': 'text/html'}); - res.end('Hello World!'); -}).listen(8080); \ No newline at end of file +http.createServer(function(req,res){ + var q = url.parse(req.url, true); + var filename = "." + q.pathname; + fs.readFile(filename,function(err,data){ + if (err){ + res.writeHead(404, {'Content-Type': 'text/html'}); + return res.end("404 Not Found"); + } + res.writeHead(200,{'Content-Type': 'text/html'}); + res.write(data); + return res.end(); + }); +}).listen(8080); +//https://nodejs.org/en/learn/asynchronous-work/the-nodejs-event-emitter https://www.theodinproject.com/lessons/nodejs-introduction-to-express \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..9ce876d --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,40 @@ +{ + + "name": "backend", + + "lockfileVersion": 3, + + "requires": true, + + "packages": { + + "": { + + "dependencies": { + + "nodemailer": "^6.9.13" + + } + + }, + + "node_modules/nodemailer": { + + "version": "6.9.13", + + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", + + "engines": { + + "node": ">=6.0.0" + + } + + } + + } + +} + diff --git a/backend/package.json b/backend/package.json index e69de29..eaff0c0 100644 --- a/backend/package.json +++ b/backend/package.json @@ -0,0 +1,2 @@ +{"dependencies":{"nodemailer":"^6.9.13"}} + diff --git a/backend/summer.html b/backend/summer.html new file mode 100644 index 0000000..83cdef6 --- /dev/null +++ b/backend/summer.html @@ -0,0 +1 @@ +

Summer

I love the sun!

\ No newline at end of file diff --git a/backend/winter.html b/backend/winter.html new file mode 100644 index 0000000..9c2f8a5 --- /dev/null +++ b/backend/winter.html @@ -0,0 +1 @@ +

Winter

I love the snow!

\ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json index 4aafc5f..402cc99 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -17,3 +17,4 @@ ] } } + diff --git a/package-lock.json b/package-lock.json index 1f41733..7b25c9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,8 @@ "core-js": "^3.8.3", "express": "^4.18.2", "firebase": "^10.12.1", + "formidable": "^3.5.1", + "nodemailer": "^6.9.13", "vue": "^3.2.13", "vue-router": "^4.0.3", "vuedraggable": "^4.1.0" @@ -4172,6 +4174,11 @@ "node": ">=8" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -5721,6 +5728,15 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -6997,6 +7013,19 @@ "node": ">= 6" } }, + "node_modules/formidable": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", + "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -7301,6 +7330,14 @@ "he": "bin/he" } }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "engines": { + "node": ">=8" + } + }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", @@ -8802,6 +8839,14 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, + "node_modules/nodemailer": { + "version": "6.9.13", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -8951,7 +8996,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -12300,8 +12344,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { "version": "7.5.9", diff --git a/package.json b/package.json index 541f384..d30baf8 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ "core-js": "^3.8.3", "express": "^4.18.2", "firebase": "^10.12.1", + "formidable": "^3.5.1", + "nodemailer": "^6.9.13", "vue": "^3.2.13", "vue-router": "^4.0.3", "vuedraggable": "^4.1.0"