node中的功能都是模块式的,每一个单独js文件就是一个模块
模块分为:
内置模块(fs path http querystring)
自定义模块(你自己定义模块)
第三方模块(包)
优点:
可以实现按需加载
提高了代码的可维护性
降低了代码之间的耦合性
可读性强
引入模块:
const 变量名=require('模块名')
常用三种模块:
fs--文件系统模块
1、对文件进行读取
fs.readFile(path[,option],callback)
path:必填 文件路径
option:可选参数,编码格式 默认是utf-8
callback:必填 回调函数 ---有两个参数(错误信息,文件内容)
例如:
const fs=require('fs')
fs.readFile('./文件.txt','utf8',function(err,data){
if (err) {
console.log("文件读取失败"+err.message);
}else{
console.log(data);
}
})
2、向文件中写入内容
fs.writeFile(path,value[,option],callback)
path:必填 文件路径
value:必填 写入的内容
option:可选参数,编码格式 默认是utf-8
callback:必填 回调函数 ---有两个参数(错误信息,文件内容)
例如:
覆盖文件内容
const fs=require('fs')
fs.writeFile('./文件.txt','天天向上123','utf8',function(err){
if (err) {
console.log("写入失败");
}else{
console.log("写入成功");
}
})
追加文件内容
const fs=require('fs')
fs.writeFile('./文件.txt','天',{flag:'a'},function(err){
if (err) {
console.log("写入失败");
}else{
console.log("写入成功");
}
})
path--路径模块
获取当前文件所处的文件夹的完整路径:__dirname
1、拼接路径
path.join(路径1,路径2,路径3)
例如:
let a = '/bg/m/d/a'
let b = '/s/d/f'
let pa = path.join(a,b)
console.log(pa); // /bg/m/d/a/s/d/f
2、获取当前路径中的文件名
path.basename(路径,扩展名)
例如:
console.log(path.basename(pa,'.txt'));
3、获取当前路径中的文件的扩展名
path.extname(路径)
例如:
console.log(path.extname(pa));
http模块
可以快速的创建一个web服务器
步骤:
导入内置模块http
创建web服务器
监听request请求
监听端口
//导入内置模块http
const http=require('http')
//创建web服务器
const server=http.createServer()
//监听request请求
server.on('request',function(req,res){
console.log('我被请求了');
})
//监听端口
server.listen('8080',function(){
console.log('http://127.0.0.1:8080');
})