一、fs核心模块
1.fs文件读取核心模块
被读取文件为 1.txt 内容为aaa
var fs = require('fs')
// 2.文件读取
// readFile('路径',反馈函数)
fs.readFile('./1.txt',function(err,data){
// 3.文件读取成功 err则为null,err如存在即读取失败,抛出提示
if(err){
return console.log('not found')
}
console.log(data)
})
终端显示结果
2.文件写入。空白文档 2.txt
var fs = require('fs')
fs.writeFile('./2.txt','01010101',function(err){
if(err){
return console.log('not found')
}
结果:
二、http核心模块
// 1.加载模块
var http = require('http')
// 2.使用createServer()创建一个web服务器,返回一个Server实例
var server = http.createServer()
// 3.监听客户端有没有发送请求。当客户端发送请求的时候,
// 就会触发服务器的request事件,然后执行回调函数的内容
server.on('request',function(){
console.log('有接收到请求呢~')
})
// 4.绑定端口号,启动服务器(web服务器创建时候就会启动,与有没有请求无关。设定端口号)
server.listen(3000,function(){
console.log('服务器启动成功,请求访问 http://127.0.0.1:3000/')
})
当执行该js代码的时候,控制台会输出
当打开127.0.0.1:3000的时候
三、知识补充:
node.js中通过require引入核心模块,也可以引入别的普通js文件。但是node.js中的变量只遵循模块作用域,即一个引入的模块即使有重名的变量,也不会发生引入之后改变原有的值。每个变量只在当前模块内作用。
那即产生一个问题,当两个模块之间需要交互的时候,如何进行数据交换?
接下来进入,模块通信
被导入的文件需要 通过exports将变量挂载上去,
为方便书写 定义 module.exports = exports 但是需要注意的是:
module.exports 直接暴露变量的方式只能暴露单一变量,并且重复使用也会导致后暴露的会覆盖前暴露的。
// 导出变量 module.exports 就等于exports
// 注意: 导出的只有单个成员,必须写全。
// 与此同时,这种方式是只导出单个变量的,所以用这种方式多次导出,
// 则 后导出的会覆盖 前导出的
module.exports = function(x,y){
return x+y
}
四、path核心模块
专门用来处理 路径相关内容
常用的: path.join 路径拼接
__dirname 动态获取 当前文件模块所属目录的绝对路径
__filename 动态获取 当前文件的绝对路径