摘要:
数据库的连接 const mongoose = require('mongoose') // 如果数据库(database)不存在就会创建 mongoose.connect('mongodb://localhost/eg', { useNewUrlParser: true, useUnifiedTo 阅读全文
摘要:
async和await是解决异步编程问题的。 promise的then方法链式调用不够优雅 async 修饰的函数同步返回一个promise 使用await必须包裹一个async修饰的函数 async返回的promise的状态由await修饰的promise的状态决定 如果await修饰的promi 阅读全文
摘要:
package.json项目描述文件,记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等。 使用npm init-y命令生成。 记录了依赖模块,项目名称,版本号,程序入口,开发时依赖,简写命令等 { "dependencies": { "bluebird" 阅读全文
摘要:
nodemon nodemon app.js 源码更改就重新运行 nrm nrm ls nrm use *** 更改npm下载地址 gulp 构建工具 阅读全文
摘要:
先安装 bluebird npm install bluebird 使用promisifyAll函数,可以将模块导出的接口promise化,注意处理后的API函数名加Async如:fs.readFileAsync() var Promise = require('bluebird') const f 阅读全文
摘要:
//此时是等价的 exports.name = 'xxx' module.exports.sex = '男' //此时把module.export指向的对象改变,以module.exports为准 module.exports = { id:'1', girlfriend:{ name:'yyy' 阅读全文
摘要:
浮动的影响 浮动的元素脱离文档流 浮动元素后面的兄弟元素就会占据原先它的位置 其父元素感知不到他的存在,撑不开父元素. 解决方法 在浮动元素后加一个块元素div2,添加clear:both属性,div2会清除div1浮动的影响,div2后面的元素和父元素也不会受到浮动的影响了 .clearfix:: 阅读全文
摘要:
浏览器工作原理 浏览器架构 单进程,多线程 多进程,多线程,进程间通过IPC(Inter Process Communication)通信 谷歌多进程架构 各进程的分工 浏览器进程 UI线程,网络线程,存储线程... 负责浏览器的“Chrome”部分, 包括导航栏,书签, 前进和后退按钮。同时这个进 阅读全文
摘要:
#自定义代码 这里是我自定义的Promise,如果想看原版,可以跳过最后有符合PromiseA+规范的源码 class 承诺 { constructor(处理器函数) { //1. 处理器函数是在_new 承诺(处理器函数)_的时候当做参数传入到构造函数里的,构造函数里会执行这个处理器函数. let 阅读全文
摘要:
let const 原来的var声明标识符:可以重复声明,编译不报错. let,const声明标识符:不能重复声明,再声明编译报错. var声明的标识符作用域是当前函数,let和const是当前{块}. const声明的标识符不能再被赋值,也就是常量. 解构赋值 ES6 允许按照一定模式,从数组和对 阅读全文