diff --git a/codeExamples/week2/.gitignore b/codeExamples/week2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..94374a6a35df952ae6bb401ff2d6f2c6eebee378 --- /dev/null +++ b/codeExamples/week2/.gitignore @@ -0,0 +1,5 @@ +# only relevant for Mac systems +.DS_STORE + +#ingore npm packages +node_modules diff --git a/codeExamples/week2/SampleWebpage.html b/codeExamples/week2/SampleWebpage.html new file mode 100644 index 0000000000000000000000000000000000000000..b58e6efcf86fdf13ab81166676fbdbe036007e8f --- /dev/null +++ b/codeExamples/week2/SampleWebpage.html @@ -0,0 +1,20 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8" /> + <!-- For responsive page --> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="description" content="Basic HTML5 Document" /> + <meta name="keywords" content="HTML5, Responsive, CMSC389N"/> + <link href="favicon.ico" rel="icon" type="image/x-icon" /> + <title>HTML TEMPLATE</title> + </head> + + <body> + <ol type = "I"> + <li>Shakira</li> + <li>JLo</li> + + </ol> + </body> +</html> \ No newline at end of file diff --git a/codeExamples/week2/add.js b/codeExamples/week2/add.js new file mode 100644 index 0000000000000000000000000000000000000000..e018112bb728c791c7fd6b5b3cf160202cdffe2b --- /dev/null +++ b/codeExamples/week2/add.js @@ -0,0 +1,27 @@ +class Person{ + constructor(name, age){ + this.name = name; + this.age = age; + } + + toString(){ + return "Name is: " + this.name + " age is " +this.age; + } + +} + +class Student{ + constructor(name, gpa){ + this.name = name; + this.gpa = gpa; + } + + toString(){ + return "Name is: " + this.name + " gpa is " +this.gpa; + } + +} + +module.exports.Person = Person; +module.exports.Stu = Student; + diff --git a/codeExamples/week2/commandLineAsync.js b/codeExamples/week2/commandLineAsync.js new file mode 100644 index 0000000000000000000000000000000000000000..33960f9f48e180541e5d34fb50101c09282b57dd --- /dev/null +++ b/codeExamples/week2/commandLineAsync.js @@ -0,0 +1,10 @@ +const readline = require('readline').createInterface({ + input: process.stdin, + output: process.stdout + }); + +readline.question('Who are you?', name => { + console.log(`Hey there ${name}!`); + readline.close(); +}); + diff --git a/codeExamples/week2/commandLineSync.js b/codeExamples/week2/commandLineSync.js new file mode 100644 index 0000000000000000000000000000000000000000..3c7aa277bafe52021997a6b4bd33d2191f2e2e3c --- /dev/null +++ b/codeExamples/week2/commandLineSync.js @@ -0,0 +1,21 @@ +const prompt = require('prompt-sync')({sigint: true}); + +// Random number from 1 - 10 +const numberToGuess = Math.floor(Math.random() * 10) + 1; +// This variable is used to determine if the app should continue prompting the user for input +let foundCorrectNumber = false; + +while (!foundCorrectNumber) { + // Get user input + let guess = prompt('Guess a number from 1 to 10: '); + // Convert the string input to a number + guess = Number(guess); + + // Compare the guess to the secret answer and let the user know. + if (guess === numberToGuess) { + console.log('Congrats, you got it!'); + foundCorrectNumber = true; + } else { + console.log('Sorry, guess again!'); + } +} \ No newline at end of file diff --git a/codeExamples/week2/eventEmitterExample.js b/codeExamples/week2/eventEmitterExample.js new file mode 100644 index 0000000000000000000000000000000000000000..c2a1e9abbe86fe434e8069fa284926719d4a1f02 --- /dev/null +++ b/codeExamples/week2/eventEmitterExample.js @@ -0,0 +1,19 @@ +var emitter = require('events').EventEmitter; + +var em = new emitter(); + +//Subscribe FirstEvent +em.addListener('FirstEvent', function (data) { + console.log('First subscriber: ' + data); +}); + +//Subscribe SecondEvent +em.on('SecondEvent', function (data) { + console.log('First subscriber: ' + data); +}); + +// Raising FirstEvent +em.emit('FirstEvent', 'This is my first Node.js event emitter example.'); + +// Raising SecondEvent +em.emit('SecondEvent', 'This is my second Node.js event emitter example.'); \ No newline at end of file diff --git a/codeExamples/week2/eventLoop.js b/codeExamples/week2/eventLoop.js new file mode 100644 index 0000000000000000000000000000000000000000..2641dc52823149fa22329ac19ad7fb07df28b7c2 --- /dev/null +++ b/codeExamples/week2/eventLoop.js @@ -0,0 +1,36 @@ +const callbackPromise = function(value) { + console.log('callback promise'); +} +const p = new Promise(function(resolve) { + console.log('making promise') + //return setTimeout(resolve, 1000); + // What happens if we wrap the resolve callback in setTimeout ? + resolve() +}); +console.log('Printing.....'); +p.then(callbackPromise).then(()=> console.log('chained promise')).then(()=> console.log('last promise')); +setTimeout(function() { + console.log('When will this print????') +}, 3000); +Promise.resolve() + .then(() => { + console.log('resolved promise 1') + //return setTimeout(function() { + // console.log('When will this print??') + //}, 1000);; + }) + .then(() => { + console.log('resolved promise 2') + }) +console.log('Finished main task'); +//p.then(callbackPromise).then(()=> console.log('chained promise')); +Promise.resolve() + .then(() => { + console.log('resolved promise 3') + //return setTimeout(function() { + // console.log('wickeddddddd') + //}, 1000);; + }) + .then(() => { + console.log('resolved promise 4') + }) diff --git a/codeExamples/week2/eventsExample.js b/codeExamples/week2/eventsExample.js new file mode 100644 index 0000000000000000000000000000000000000000..0ab901d82cc458518697f131a81cf191a9544325 --- /dev/null +++ b/codeExamples/week2/eventsExample.js @@ -0,0 +1,16 @@ +//const EventEmitter = require('events'); +const RaiseEvent = require('./raise'); + +const myEmitter = new RaiseEvent(); + +//on +myEmitter.on('Greeting', function(){ + console.log("I was just greeted!"); +}) + +myEmitter.on('High Five', function(args){ + console.log(args); +}) + + +myEmitter.raise(); diff --git a/codeExamples/week2/httpExample.js b/codeExamples/week2/httpExample.js new file mode 100644 index 0000000000000000000000000000000000000000..72926ce12433e522b0134350fae688a39f399348 --- /dev/null +++ b/codeExamples/week2/httpExample.js @@ -0,0 +1,15 @@ +const http = require('http'); + +const server = http.createServer(function(request, response){ + if(request.url === '/greeting'){ + response.write('Hi'); + + response.end(); + } +} );//1 + +server.on('connection', function(socket){ + console.log("Connected!"); +}); + +server.listen(5500); \ No newline at end of file diff --git a/codeExamples/week2/httpFile.js b/codeExamples/week2/httpFile.js new file mode 100644 index 0000000000000000000000000000000000000000..60598b4f174c386078b9701e7600ea6de041ff5d --- /dev/null +++ b/codeExamples/week2/httpFile.js @@ -0,0 +1,20 @@ +const http = require('http'); +const fs = require('fs'); + +const server = http.createServer(function (req, res) { + if (req.url === '/sample') { + fs.readFile('./SampleWebpage.html', function (err, data) { + if (err) { + console.log(err); + } else { + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.write(data); + res.end(); + } + + + }) + } +}); + +server.listen(3000); \ No newline at end of file diff --git a/codeExamples/week2/index.js b/codeExamples/week2/index.js new file mode 100644 index 0000000000000000000000000000000000000000..35426ddee767760f1410fa612ed58e34a4c53235 --- /dev/null +++ b/codeExamples/week2/index.js @@ -0,0 +1,8 @@ +const modules = require('./add'); + +let p1 = new modules.Person("Jessica", 35); +let s1 = new modules.Stu("Amy", 3.5); + +console.log(p1.toString()); + +console.log(s1.toString()); \ No newline at end of file diff --git a/codeExamples/week2/osExample.js b/codeExamples/week2/osExample.js new file mode 100644 index 0000000000000000000000000000000000000000..82544204d939df34eeac597d437689dd78e5dc08 --- /dev/null +++ b/codeExamples/week2/osExample.js @@ -0,0 +1,7 @@ +const os = require('os'); + +console.log(os.totalmem()); +console.log(os.freemem()); + +console.log(os.type()); +console.log(os.uptime()); diff --git a/codeExamples/week2/package-lock.json b/codeExamples/week2/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..a185410bb3563c31b5edd6bcac1f18e8edb8f2c4 --- /dev/null +++ b/codeExamples/week2/package-lock.json @@ -0,0 +1,29 @@ +{ + "name": "week2", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "prompt-sync": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.2.0.tgz", + "integrity": "sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==", + "requires": { + "strip-ansi": "^5.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } +} diff --git a/codeExamples/week2/package.json b/codeExamples/week2/package.json new file mode 100644 index 0000000000000000000000000000000000000000..7a8c0365980a3d0dbe7a59a832f1f11733fc4778 --- /dev/null +++ b/codeExamples/week2/package.json @@ -0,0 +1,14 @@ +{ + "name": "week2", + "version": "1.0.0", + "description": "", + "main": "commandLineAsync.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "prompt-sync": "^4.2.0" + } +} diff --git a/codeExamples/week2/pathExample.js b/codeExamples/week2/pathExample.js new file mode 100644 index 0000000000000000000000000000000000000000..883d065e24ecb0ee2f47674bc266e39c0bc05b2f --- /dev/null +++ b/codeExamples/week2/pathExample.js @@ -0,0 +1,4 @@ +const path = require('path'); + +let p = path.parse('/Users/tesla/teaching/summer2020/cmsc389N/cmsc389nsummer2020-student/lectureCodeExamples/week5/node/pathExample.js'); +console.log(p); \ No newline at end of file diff --git a/codeExamples/week2/raise.js b/codeExamples/week2/raise.js new file mode 100644 index 0000000000000000000000000000000000000000..f58a6e3c07a1a3dfeb8b41ecc867640cc4b5c3aa --- /dev/null +++ b/codeExamples/week2/raise.js @@ -0,0 +1,15 @@ +const EventEmitter = require('events'); + +class RaiseEvent extends EventEmitter{ + + + raise() { + //emit events + this.emit('Greeting'); + + this.emit('High Five', "Down Low", "too slow"); + } +} + + +module.exports = RaiseEvent; diff --git a/lectures/week2/Express Intro.pdf b/lectures/week2/Express Intro.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1380a6b444f91d0ac7cfd613be050bbcf050ce67 Binary files /dev/null and b/lectures/week2/Express Intro.pdf differ diff --git a/lectures/week2/Javascript Intro Day 2.pdf b/lectures/week2/Javascript Intro Day 2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78ad54c037b2e5eb1f0f92dc36b1914325ba32d7 Binary files /dev/null and b/lectures/week2/Javascript Intro Day 2.pdf differ