程序员让前端飞

Node.js学习之路day1

2017-09-14  本文已影响0人  zkhChris

前端菜鸡记录自己的node.js学习之路,与大家共勉

1.从HelloWorld写起

test.js
console.log('helloworld')

node test
输出helloworld

2.简单的模块使用

test1.js
function hello(){
  console.log('helloworld')
}
module.exports=hello
test2.js
let hello=require('./test1.js')
hello()

输出helloworld

3.判断浏览器或者node环境

if(typeof(window)!='undefined'){
  console.log('window')
}else{
  console.log('node')
}

4.常用模块之File System fs

fs:文件系统模块,负责读写文件

4.1.1异步读文件

let fs=require('fs')
fs.readFile('../test.txt','utf-8',function(err,data){
  if(err){
    console.log(err)
  }else{
    console.log(data)
  }
})

readFile()第一个参数是文件的路径,第二个参数是文件编码,第三个为回调函数,err为不空时说明出错,否则输出data。
异步证明

let fs=require('fs')
fs.readFile('../test.txt','utf-8',function(err,data){
  if(err){
    console.log(err)
  }else{
    console.log(data)
  }
})
console.log('async')//输出为'async' data

4.1.2 同步读文件

let data=fs.readFileSync('./test1.js','utf-8')
console.log(data)

在异步读写的后面加上Sync,读文件失败会直接报错,可使用try catch捕获错误。

let fs=require('fs')
try{
let data=fs.readFileSync('./test11.js','utf-8')
console.log(data)
}
catch(e){
  console.log(e)
}

同步读取的缺点在于,当文件过于大时,有可能io阻塞,等待期间无法响应其他请求。

4.2.1异步写文件

通过fs.writeFile()实现

let fs=require('fs')
let data='new write'
fs.writeFile('./test1.js',data,function(err){
  if(err){
    console.log(err)
  }else{
    console.log('success')
  }
})
console.log('async')
})
//输出 async  success

成功后会替换原文件文本,路径不存在时会新建文件

4.2.2 同步写文件

let fs=require('fs')
let data='new write'
fs.writeFileSync('./test1.js',data)

成功后会替换原文件文本,路径不存在时会新建文件

4.3 stat(),statSync()方法

该方法返回一个Stat对象,包含文件大小,创建时间等信息

let fs=require('fs')
let data='new write'
fs.stat('./test1.js',function(err,data){
  if(err){
    console.log(err)
  }else{
    console.log(data)
  }
})
image.png

stat里面就上面这些属性,有些不知道是什么相关的。。。

statSync同步方法,尽量用try..catch捕获错误

let fs=require('fs')
try{
  let info=fs.statSync('./test32.js')
  console.log(info)
}
catch(e){
  console.log(e)
}

4.4 fs小总结

node上大多数文件操作应该都是用的异步操作,读取关键配置或者特殊需要同步操作的情况再用同步文件操作吧,毕竟单线程,服务器失去响应就很尴尬了。

上一篇下一篇

猜你喜欢

热点阅读