Dr. Andrew Besmer
Debugging and Modules
let andrew = {
'name' : 'Andrew Besmer',
'grades' : [99, 75, 87, 95, 100, 68]
};
function average(student)
{
let sum=0;
let count=0;
for(let ct=0; ct <= student.grades.length; ct++)
{
sum = sum + student.grades[ct];
count++;
}
return sum/count;
}
function studentInfo(student)
{
let studentAverage = average(student);
//Using Template Strings
return `The student ${student.name} has an average score of ${studentAverage}`;
}
let andrewInfo = studentInfo(andrew);
console.log(andrewInfo)
CommonJS and (ECMAScript Modules or ES Modules)
AMD or Asynchronous Module Definitionrequire().js - treated as a JavaScript file.json - parsed as json.node - Treated as a compiled addonrequire() has similar rules to other includes
/ considered absolute./ considered relative to files in same directory../ relative to parent directory, and so on/, ./, etc… it is considered a “core module”
http it is loadednode_modules folders by starting at ./node_modules and working up to root file systempackage.jsonindex.jsindex.nodeexports
exports is module.exports//greeting.js
exports.sayHello = function(name)
{
console.log("Hello " + name);
};
//app.js
var greeting = require("greeting");
greeting.sayHello("World");
exports//greeting.js
exports.sayHello = function(name)
{
console.log("Hello " + name);
};
exports.sayGoodbye = function(name)
{
console.log("Goodbye " + name);
};
//app.js
var greeting = require("./greeting");
greeting.sayHello("World");
greeting.sayGoodbye("World");
//greeting.js
exports.sayHello = function(name)
{
console.log("Hello " + name);
};
var sayGoodbye = function(name)
{
console.log("Goodbye " + name);
};
//app.js
var greeting = require("./greeting");
greeting.sayHello("World");
greeting.sayGoodbye("World"); //Error!
exportexport defaultimport either named or default to access that exported modules piecesexport function foo() {
// ..
}
export var awesome = 42;
var bar = [1,2,3];
export { bar };
export default function foo(..) {
// ..
}
export you can import using either named or default exports{ and } braces
import { foo, bar, baz } from "foo";
foo();
import { foo as theFooFunc } from "foo";
theFooFunc();
* to import many named items at once
export function bar() { .. }
export var x = 42;
export function baz() { .. }
import * as foo from "foo";
foo.bar();
foo.x; // 42
foo.baz();
defaultimport foo from "foo";
export default function foo() { .. }
export function bar() { .. }
export function baz() { .. }
import FOOFN, { bar, baz as BAZ } from "foo";
FOOFN();
bar();
BAZ();
npm or node package manager is used to help management project dependencies
npm install packageNamerequire('packageName')import packageName from "packageName"npm install -g packageName but then can’t require
http-server is examplechalk