node.js入门
1.旧语法
var定义的变量可以修改,而且可以重新定义
var a = 10
console.log(a)
var a = 'hello'
console.log(a)
2.新语法
let:可以修改变量,但是不允许重新定义
const 不可以修改,常量
let b = 20
console.log(b)
const c = 'hello'
console.log(c)
3.解构赋值
numbers = [1,2,3,4]
let a = numbers[0]
let b = numbers[1]
新操作我们可以这样做
let [a,b,c,d] = numbers
let person = {'name':'Jim' , 'age' :20}
let {name, age} = person
console.log(name, age)
类
class Person{
//构造函数
constructor(name,age){
this.name=name
this.age=age
}
//成员函数,不需要使用function关键字
say(){
console.log(name,age)
}
}
let p1 = new Person('father',40)
p1.say()
let p2 = new Person('son',20)
p2.say()
类的继承
class Student extends Person{
constructor(name,age){
super(name,age)
this.name=name
this.age=age
}
}
let s1 = new Student('stu01' , 20)
s1.say()
回调函数callback
我们来写一个读文件的demo
nodejs有内置的文件系统包
fs filesystem
先写一下同步读取
代码
let fs = require('fs')
let info = fs.readFileSync('./test.js')
console.log(info.toString())
然后我们写异步的读取
let fs = require('fs')
fs.readFile('./test.js','utf-8', (err,data) => {
if (err){
console.error('fail')
}
console.log('info: ' , data.toString())
})
模块系统
exports,require
function print1(){
console.log('hello world')
}
module.exports=print1
另一文件
let print1=require('./exportstest')
print1()
如果要导出2个
exportFunc={print1,print2}
module.exports=exportFunc
或者
module.exports=exportFunc={print1,print2}
然后
let exportFunc=require('./exportstest')
exportFunc.print1()
exportFunc.print2()
文件读写
fs.readFile('./test.js', 'utf-8', (err,data)=>{
if(err){
console.error('读取文件失败')
return
}
console.log('异步读取数据:', data.toString())
//在读取文件的回调中写入数据
fs.writeFile('./1.txt', data, 'utf-8', (err,info)=>{
if(err){
console.error('fail: '+ err)
return
}
console.log('success')
fs.stat('./1.txt', (err,statInfo)=>{
if(err){
console.error()
return
}
console.log(statInfo)
})
})
})
promise
1.promise是一个类型
2.接收一个回调函数作为参数
3.这个回调函数包含两个函数回调函数
4.resolve是一个回调函数,在代码执行成功时调用
let promiseFunc = new Promise(function(resolve, reject){
fs.readFile('./test.js', (err,data)=>{
if(err){
console.log('read fail')
reject(err)
}
resolve(data)
})
})
let readFilePromise==()=>{
return new Promise(function(resolve, reject){
fs.readFile('./test.js', (err,data)=>{
if(err){
console.log('read fail')
reject(err)
}
resolve(data)
})
})
}