node模块的引用顺序
https://blog.csdn.net/qq_24839991/article/details/79970808
当require('xxx')一个模块时:
优先加载核心模块: 如果显示指定文件模块扩展名,则在该路径下查找该模块是否存在;
以路径形式加载文件模块:如果未显示指定文件模块扩展名,则在该路径下,依次查找以.js、.json、.node为扩展名的模块是否存在;
require(./xxx.json)引过来的是一个对象数据类型,所以可以用 变量.属性的方法来取值 console.log(a.a)
内置http模块 http.createServer //方法-- 该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。 由于该方法属于http模块,使用前需要引入http模块 var http= require(“http”) const http = require("http");//引入http模块 var ser = http.createServer((req,res)=>{//创建http服务 req---请求对象,res---响应对象 res.writeHead(200,{"content-type":"text/html;charset=utf8"});//发送http头部 http状态值200 设置内容类型 ,告诉浏览器用何种方式来解析之后的代码 res.write("<h1>hello</h1>"); res.end("<p>hi</p>")//res指定了响应头,响应体内容为node.js,用end结束。 }) ser.listen(3000,()=>{//最后调用listen函数,监听3000端口。 console.log(`listen${ser.address().port}...`) }) 前后端分离 后端写json数据 然后在js中获取json数据的文件夹 接受json中的所有数据并允许跨域 将json对象转换成json字符串 监听端口号为5000的端口 把数据传到这个端口中 前端用ajax获取到5000端口获取数据 1第一步为json数据 a.json { "stus":[ {"name":"张三", "age":15 } ] } 2第二步为后端封装接口 const http = require("http"); var stus = require("./a"); var ser = http.createServer(function(req,res){ res.writeHead(200,{"content-type":"application/json","Access-Control-Allow-Origin":'*'}) res.end(JSON.stringify(stus)); }) ser.listen(5000,()=>{ console.log("listen " ser.address().port "..."); }) 3第三步为前端调取数据 $.get({ var temUl =$("<ul>"); res.stus.map((item)=>{ temUl.append("<li>姓名:" item.name " 年龄:" item.age "</li>"); }) $("#box").append(temUl); }) nodejs模块中的------fs模块 fs模块用于对系统文件及目录进行读写操作 https://www.cnblogs.com/starof/p/5038300.html 1.读取文件的三种方式 ①异步读文件 var const = require("fs");//引入fs模块 fs.readFile("文件的路径","utf-8",(err,data)=>{// readFile的回调函数接收两个参数,err是读取文件出错时触发的错误对象,data是从文件读取的数据。 if(err){ console.log("失败") } console.log(data) }); ②同步读文件 var const = require("fs"); var content = fs . readFileSync("文件的路径","utf-8"); console.log(content) ③流的方式读取文件 var const = require("fs"); var rs = fs.createReadStream("文件路径") var str = ""; rs.on("data",(thunk)=>{//on是事件监听的方法 str =thunk; }) rs.on("end",()=>{ console.log(str); }) 2.写入文件的三种方式 ①异步写入文件 var const = require("fs"); fs.writeFile("文件路径","内容",()=>{//写入文件内容(如果文件不存在会创建一个文件),写入时会先清空文件 console.log("写入成功") }); ②同步写入文件 var const = require("fs"); fs.writeFileSync("文件路径","内容"); ③流的方式写入文件 var ws = fs.createWriteStream("文件路径"); ws.write("内容","utf-8"); ws.end(); ws.on("finish",()=>{ console.log("写入完成") }) 3.显示一个网页(在CMD运行后访问 localhost:3000) ①同步显示 const http = require("http"); const fs = require("fs"); http.createServer((req,res)=>{ res.writeHead(200,{"content-type":"text/html;charset=utf8"}); var str = fs.readFile("文件路径","utf-8",(err,data)=>{ if(!err){ res.end(data); } }) }).listen(3000,()=>{ console.log("listen 3000.....") }) ②异步显示 const http = require("http"); const fs = require("fs"); http.createServer((req,res)=>{ res.writeHead(200,{"content-type":"text/html;charset=utf8"}); var str = fs.readFileSync("文件路径","utf-8"); res.end(str) }).listen(3000,()=>{ console.log("listen 3000.....") }) ③流的方法显示 const http = require("http"); const fs = require("fs"); http.createServer((req,res)=>{ res.writeHead(200,{"content-type":"text/html;charset=utf8"}); fs.createReadStream("文件路径").pipe(res); // pipe是管道 }).listen(3000,()=>{ console.log("listen 3000.....") }) 4.在本地拷贝一个视频(大文件的拷贝) fs.stat 表示文件的状态 const fs = require("fs"); var rs = fs.createReadStream("./w.wmv");//读取这个文件 var ws = fs.createWriteStream("./wcopy.wmv");//创建一个copy文件 var size = 0 ;//文件的总大小 var len = 0;//当前读取的文件的大小 fs.stat("./w.wmv",(err,info)=>{//info是信息情报 if(!err){ size = info.size;//获取文件的大小 } rs.on("data",(thunk)=>{ console.log((len/size*100).toFixed(2) '%')//输出加载进度 ws.write(thunk) }) rs.on("end",()=>{ console.log("copy over") }) }) 来源:https://www./content-1-449151.html |
|