This is the reference point. All the other options are based off this.
|-- app
| |-- controllers
| | |-- admin
let fs = { | |
readFile: function(filename, cb){ | |
setTimeout(()=>{ | |
cb('hello') | |
}, 100) | |
} | |
} | |
let readFilePro = function(filename){ | |
return new Promise(function(resolve, reject) { | |
fs.readFile(filename, (data, err) => { |
//ES6 Class inherit example | |
class Person{ | |
sayName(){ | |
console.log(this.name); | |
} | |
} | |
class Classmate extends Person { | |
constructor(name){ | |
super() | |
this.name = name; |
//mock a fs Object | |
let fs = { | |
readFile: function(filename, cb){ | |
let randomTime = 100+Math.random()*1000>>0; | |
setTimeout(()=>{ | |
cb(`hello ${filename}`) | |
}, randomTime) | |
} | |
} |
const obj1 = {name:"xiaoming", age: 23} | |
const obj2 = {age: 33} | |
const obj3 = {...obj1, ...obj2} | |
//obj3 ==> {"name":"xiaoming","age":33} |
const arr1 = [1,2,3] | |
const arr2 = [4,5,6] | |
const arr3 = [...arr1, ...arr2] //arr3 ==> [1,2,3,4,5,6] |
function server(req, res){ | |
let next = () => { | |
//deal with ending job | |
} | |
middlewares.reduceRight((next, middleware) => { | |
return () => { | |
middleware(req, res, next) | |
} | |
}, next)(); | |
} |
if (localStorage && !localStorage.getItem('size')) { | |
var i = 0; | |
try { | |
// Test up to 10 MB | |
for (i = 250; i <= 10000; i += 250) { | |
localStorage.setItem('test', new Array((i * 1024) + 1).join('a')); | |
} | |
} catch (e) { | |
localStorage.removeItem('test'); | |
localStorage.setItem('size', i - 250); |
(function(console){ | |
console.save = function(data, filename){ | |
if(!data) { | |
console.error('Console.save: No data') | |
return; | |
} | |
if(!filename) filename = 'console.json' |
function template(html, data){ | |
//process html template | |
html = html.replace(/>/g, ">") | |
.replace(/</g, "<") | |
.replace(/[\r\t\n]\s+/g, '') | |
.trim(); | |
var re = /<%([^>]+)?%>/g, | |
reExp = /(^( )?(if|for|else|switch|case|break|{|}|var|let|const))(.*)?/g, | |
code = 'var r=[];\n', |