系统模块
读取文件
var fs = require('fs')
//同步读取文件
console.log('start---')
var data = fs.readFileSync('./demo.txt')
console.log(data.toString())
// console.log(data)
console.log('end---')
//异步读取文件
console.log('start---')
fs.readFile('./demo.txt',function(err,data){
if(err) throw err
console.log(data.toString())
})
console.log('end---')
写入文件
var fs = require('fs')
var os = require('os')
// 同步写入文件
// console.log('======')
// var data = fs.writeFileSync('./abc.txt','hello')
// console.log(data)
// console.log('----')
// 异步写入文件
console.log('======')
fs.writeFile('./hello.text','hello world',function(err){
if(err) throw err
console.log('拿下')
})
console.log('----')
console.log(os.type())
绑定事件
var events = require('events')
var emitter = new events.EventEmitter()
//绑定事件
emitter.on('abc',function(){
console.log('abc是事件执行了')
})
//触发事件
emitter.emit('abc')
服务器对象
var http = require('http')
//node.js搭建服务器
//创建服务器对象
var app = http.createServer(function(req,res){
res.write('<h1>hello</h1>')
res.end()
})
//监听端口,开启服务器
app.listen(8080,function(){
console.log('server success!')
})
常用的系统模块: fs os path EventEmitter http process
自定义模块
自定义之事件模块
time.js
function timeParse(str){
var array = str.split('-')
return `${array[0]}年${array[1]}月${array[2]}日`
}
function getTime(){
let date = new Date()
return date.getTime()
}
module.exports = {
timeParse,
getTime
}
demo5.js
// var timeParse = require('./timeParse')
// console.log(timeParse('2021-4-4'))
var time = require('./time')
console.log(time.getTime())
console.log(time.timeParse('2021-4-4'))
自定义之学生对象
student.js
class Student{
constructor({name,age,sex,classroom}){
this.name=name
this.age=age
this.sex=sex
this.classroom=classroom
}
read(){
console.log(`${this.name}在上网`)
}
message(){
console.log(`${this.name}是${this.sex}生,今年${this.age}岁,在${this.classroom}班`)
}
}
module.exports = Student
demo6.js
const Student = require('./student')
var student = require('./student')
let s1 = new Student({
name:'tom',
age:10,
sex:'男',
classroom:'604'
})
let s2 = new Student({
name:'jack',
age:13,
sex:'女',
classroom:'404'
})
s1.read()
s1.message()
s2.read()
s2.message()
创建模块: 创建.js文件,使用 module.exports 向外暴露该文件中的对象
引入模块: require('路径')
安装第三方模块:
npm i xxx --save 或 npm i xxx -S 生产环境安装
npm i xxx --save-dev 或 npm i xxx -D 开发环境安装
区别:
1、安装命令不同
2、构建(打包)的方式不同:开发环境安装的模块不会被打包,生产环境安装的模块会被一起打包