Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9784ff7
finished section 2-11
lchmielewskistuart May 17, 2023
f207262
section 1-15 start
lchmielewskistuart May 22, 2023
7c083fc
finished 2-15
lchmielewskistuart May 24, 2023
d04dc3b
finished 2-17
lchmielewskistuart May 29, 2023
379167b
starting 2-21
lchmielewskistuart May 29, 2023
c792d99
async await
lchmielewskistuart Jul 12, 2023
c67f552
completed await async section
lchmielewskistuart Jul 12, 2023
edbba6e
after section 4
lchmielewskistuart Jul 26, 2023
a17a096
completed lecture 56
lchmielewskistuart Jul 26, 2023
c6bd036
json format
lchmielewskistuart Jul 31, 2023
592b778
after lesson 59
lchmielewskistuart Aug 2, 2023
0e2f624
after lesson 61
lchmielewskistuart Aug 2, 2023
8468ec2
after lesson 63
lchmielewskistuart Aug 2, 2023
61137ec
after lesson 67
lchmielewskistuart Aug 9, 2023
0812711
after section 6
lchmielewskistuart Aug 9, 2023
8965032
after section 7
lchmielewskistuart Aug 9, 2023
3987aa0
added mongoose
lchmielewskistuart Aug 16, 2023
9134760
commented errors for server.js
lchmielewskistuart Aug 16, 2023
0405125
after section 92
lchmielewskistuart Aug 16, 2023
f99b773
after section 93
lchmielewskistuart Aug 16, 2023
dfac1c5
after section 94
lchmielewskistuart Aug 23, 2023
9fc83fd
after section 95
lchmielewskistuart Aug 23, 2023
1805bc4
after section 97
lchmielewskistuart Aug 23, 2023
da43a4d
after section 100
lchmielewskistuart Aug 23, 2023
9339f23
after section 101
lchmielewskistuart Aug 30, 2023
9d4485b
after section 102
lchmielewskistuart Aug 30, 2023
75d2da3
after section 103
lchmielewskistuart Aug 30, 2023
7a362ba
after section 104
lchmielewskistuart Aug 30, 2023
22698c4
completed mongoose
lchmielewskistuart Sep 6, 2023
2d17154
after section 104
lchmielewskistuart Sep 6, 2023
cb57001
after section 8
lchmielewskistuart Sep 13, 2023
8c27891
after section 8
lchmielewskistuart Sep 13, 2023
ce9f66c
after lesson 112
lchmielewskistuart Sep 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
22 changes: 22 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#2f7c47",
"activityBar.background": "#2f7c47",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#422c74",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#2f7c47",
"statusBar.background": "#215732",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#2f7c47",
"statusBarItem.remoteBackground": "#215732",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#215732",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#21573299",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#215732"
}
125 changes: 125 additions & 0 deletions 1-node-farm/starter/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
const fs = require('fs');
const http = require('http');
const url = require('url');
const slugify = require('slugify');
const replaceTemplate = require('./modules/replaceTemplate');

// const

// SERVER

const tempOverview = fs.readFileSync(`${__dirname}/templates/template-overview.html`, 'utf-8');
const tempCard = fs.readFileSync(`${__dirname}/templates/template-card.html`, 'utf-8');
const tempProduct = fs.readFileSync(`${__dirname}/templates/template-product.html`, 'utf-8');

const data = fs.readFileSync(`${__dirname}/dev-data/data.json`, 'utf-8');
const dataObj = JSON.parse(data);

const slugs = dataObj.map(el => slugify(el.productName, {lower: true}));

console.log(slugs);

const server = http.createServer((req, res) => {
// console.log(req);
// console.log(req.url);

const {query, pathname} = url.parse(req.url, true);

const pathName = req.url;
if(pathname==='/' || pathname==='/overview') {
res.writeHead(200,{'Content-type': 'text/html'});
// console.log(tempCard);

const cardsHtml = dataObj.map(el => replaceTemplate(tempCard, el)).join('');
// console.log(cardsHtml);
const output = tempOverview.replace('{%PRODUCT_CARDS%}', cardsHtml);
// console.log(cardsHtml);
res.end(output);




} else if (pathname==='/product') {
// console.log(query);
res.writeHead(200,{'Content-type': 'text/html'});
const product = dataObj[query.id];
// console.log(product);
const output = replaceTemplate(tempProduct, product);
res.end(output);



} else if (pathName==='/api') {
// Reading the File each time the page is logged
// fs.readFile(`${__dirname}/dev-data/data.json`, 'utf-8', (err,data) => {
// const productData = JSON.parse(data);
// // console.log(productData);
// res.writeHead(200,{
// 'Content-type': 'application/json'
// });
// res.end(data);
// });

// Below reads the data from top-level code only once when the server is started
res.writeHead(200,{'Content-type': 'application/json'});
res.end(data);





} else {
res.writeHead(404, {
'Content-type': 'text/html',
'my-own-header': 'hello-world'
});
res.end('<h1>Page not found!<\h1>');
// console.log(http.status);
};
// res.end('Hello from the server!');
});

server.listen(8000, '127.0.0.1', () => {
console.log('Listening to requests on port 8000');
});



/*
const hello = 'Hello world';
console.log(hello);
*/

// FILES

// Blocking synchronous way
/*
const textIn = fs.readFileSync('./txt/input.txt', 'utf-8');
console.log(textIn);

const textOut = `This is what we know about the avocado: ${textIn}\nCreated on ${Date.now()}`;

fs.writeFileSync('./txt/output.txt', textOut);

console.log(textOut);
console.log('File written!');
*/

// Non-blocking asynchronus way
/*
fs.readFile('./txt/start.txt', 'utf-8', (err, data1) => {
if (err) return console.log('ERROR');

fs.readFile(`./txt/${data1}.txt`, 'utf-8', (err, data2) => {
console.log(data2);
fs.readFile('./txt/append.txt', 'utf-8', (err, data3) => {
console.log(data3);

fs.writeFile('./txt/final.txt', `${data2}\n${data3}`, 'utf-8', err => {
console.log('Your file has been written 😁')
})
});
});
});
console.log('Will read file!');
*/
17 changes: 17 additions & 0 deletions 1-node-farm/starter/modules/replaceTemplate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module.exports = (temp, product) => {
// console.log(product);
// if (temp.includes('{%PRODUCTNAME%}')) {
// console.log(temp)
// };
let output = temp.replace(/{%PRODUCTNAME%}/g, product.productName);
output = output.replace(/{%IMAGE%}/g, product.image);
output = output.replace(/{%PRICE%}/g, product.price);
output = output.replace(/{%FROM%}/g, product.from);
output = output.replace(/{%NUTRIENTS%}/g, product.nutrients);
output = output.replace(/{%QUANTITY%}/g, product.quantity);
output = output.replace(/{%DESCRIPTION%}/g, product.description);
output = output.replace(/{%ID%}/g, product.id);

if(!product.organic) output = output.replace(/{%NOT_ORGANIC%}/g, 'not-organic');
return output;
}
1 change: 1 addition & 0 deletions 1-node-farm/starter/node_modules/.bin/nodemon

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions 1-node-farm/starter/node_modules/.bin/nodetouch

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions 1-node-farm/starter/node_modules/.bin/nopt

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions 1-node-farm/starter/node_modules/.bin/semver

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading