目录
- 编译es6
- Node event模块
- 命令行的扩展
- 创建文件
- buffer 读取字节、缓冲
普通的不行。在编译的时候要加
开启支持
–experimental-modules
.mjs 后缀
export
http://www.ecma-international.org/ecma-262/#table-42
import
http://www.ecma-international.org/ecma-262/#table-40
用mjs
import * as m2 from './2.mjs'
Node event模块
调用自己的event事件
大多数 Node.js 核心 API
构建于惯用的异步事件驱动架构,其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。
例如,net.Server 会在每次有新连接时触发事件,fs.ReadStream
会在打开文件时触发事件,stream会在数据可读时触发事件。 所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象有一个
eventEmitter.on() 函数,用于将一个或多个函数绑定到命名事件上。 事件的命名通常是驼峰式的字符串。 当
EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都会被同步地调用。 例子,一个简单的 EventEmitter
实例,绑定了一个监听器。 eventEmitter.on() 用于注册监听器, eventEmitter.emit() 用于触发事件。
event/1.js
http://nodejs.cn/api/events.html
const EventEmitter = require('events');
class Person extends EventEmitter{ //EventEmitter 继承
constructor(name){
super()
this.name=name;
this.age=0
this.growup()
}
growup(){
setInterval(()=>{
this.age++
this.emit('growup') //调用growup
},1000)
}
}
var p1=new Person('wanzi')
p1.addListener('growup',function(){
console.log('zhangda')
})
自定义的一些命令
process
console.log(process.argv)
if(process.argv.includes('-v')){
console.log('v1.0.0.0')
}
if(process.argv.includes('-v')){
console.log('v1.0.0.0')
process.exit()//结束进程
}
proess.stdout 标准输出流
.write
proess.stdin标准输入流
process.stdout.write('请输入项目名')
process.stdin.on('data',(e)=>{
console.log('项目名',e)
process.exit()
})
创建文件
var fs=require('fs')
process.stdout.write('请输入你要创建的项目名称')
process.stdin.on('data',(e)=>{
fs.mkdirSync(e.toString().replace('\r\n',''))
process.stdout.write('项目创建成功')
process.exit()
})