获取模块 const fs = require("fs")
css
demohtml
const read = fs.createReadStream("./sjl.txt"); //读取流
let str = "";
read.setEncoding("utf8"); //设置字符集
// read.resume(); 改变流的状态为释放状态,让它开始动起来
//read中的内置事件
//设置流状态为释放状态,回调中的第一个形参为读取的数据
read.on("data", (data) =>{
str = data;
});
//流释放完毕后,触发end事件中的回调
read.on("end", ()=>{
console.log(str)

console.log("读取结束");
})
复制代码
效果: 读取sjl.txt中的内容jquery
2.fs.appenfFile和fs.appendFileSyncajax
前者经过异步的方式将文本内容或数据添加到文件里,若是文件不存在会自动建立。跨域
fs.appendFile("./sjl2.txt", "sjl", "utf8", (err) => {
console.log(err);
});
复制代码
后者经过同步的方式将文本内容或数据添加到文件里,文件不存在则自动建立。bash
const write = fs.createWriteStream("./sjl2.txt");
write.write("11111");
复制代码
//管道 pipe
const read = fs.createReadStream("./sjl.txt");
const write = fs.createWriteStream("./sjl2.txt");
read.pipe(write); //将sjl.txt的内容给予sjl2.txt,至关于复制文件
复制代码
const Readable = require("stream").Readable; //获得可读流的构造函数/类
const read = new Readable(); //建立一个可读流对象
read.setEncoding("utf8");
read.push("123");
read.push("456");
read.push("789"); //放数据
read.push(null); //数据放完了
read.on("data", data => {
console.log(data);
});
复制代码
引入模块const http = require("http");
app
const http = require("http");
//建立一个服务
const server = http.createServer((req, res)=>{
/*
1. req: 请求体对象
2. res: 响应体对象,后台给客户端的响应
*/
//设置响应头(状态码,响应内容类型)
res.writeHead(200, {
"Content-Type" : "text/html;charset=utf-8"
});
//text/plain :纯文本 text/html:标签
res.write("返回的数据"); //向客户端返回数据,可调用无数次
res.end(""); //响应结束
//write和end中参数必须是string或者Buffer对象
});
srever.listen(3000, ()=>{
console.log("服务监听在localhost 3000端口")
}); //监听3000端口
复制代码
const http = require("http");
//建立一个服务
const server = http.createServer((req, res) => {
// req 请求体对象 res:响应体对象
req.url; //路由
req.method; //方法 "GET","POST"
req.headers; //请求头内容
});
//监听端口号
server.listen(3000);
console.log("开始监听3000端口");
复制代码
const http = require("http");
//建立一个服务
const server = http.createServer((req, res) => {
if (req.url !== "/favicon.ico") { //拒绝图标请求
if (req.method === "GET") { //设置方法
res.writeHead(200, {
"Content-Type": "text/html;charset=utf-8"
});
switch (req.url) {
case "/sjl":
res.write("<div>sjl</div>");
break;
case "/":
res.write("<div>根目录</div>");
break;
default:
res.write("<div>没有符合要求的</div>");
break;
}
}
}
res.end();
});
//监听端口号
server.listen(3000);
复制代码
访问localhost:3000 的效果图: 异步
新建两个html文件 a.html和b.html函数
const http = require("http");
const fs = require("fs");
//建立一个服务
const server = http.createServer((req, res) => {
if (req.method === "GET") {
res.writeHead(200, {
"Content-Type": "text/html;charset=utf-8"
});
switch (req.url) {
case "/sjl":
fs.readFile("./01.html", "utf8", (err, data) => {
res.write(data);
res.end();
});
break;
default:
fs.readFile("./default.html", "utf8", (err, data) => {
res.write(data);
res.end();
});
break;
}
}
});
//监听端口号
server.listen(3000);
console.log("开始监听3000端口");
复制代码
const http = require("http");
const fs = require("fs");
const server = http.createServer((req, res) => {
if (req.method === "GET") {
res.writeHead(200, {
"Content-Type": "text/html;charset=utf-8"
});
switch (req.url) {
case "/sjl":
res.write(fs.readFileSync("./01.html", "utf8"));
break;
default:
res.write(fs.readFileSync("./default.html", "utf8"));
break;
}
}
res.end();
});
//监听端口号
server.listen(3000);
console.log("开始监听3000端口");
复制代码
效果图:ui
建立一个html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax案例</title>
<style>
*{margin:0;padding:0;}
li{list-style:none;}
a{text-decoration: none;}
#wrap{
width:200px;
height:200px;
background-color:#f66;
}
</style>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div id="wrap">ajax案例</div>
<script>
$("#wrap").click(() => {
$.ajax({
url : "http://127.0.0.1:3000",
method : "get",
success : function(msg){
console.log(msg);
}
});
});
</script>
</body>
</html>
复制代码
建立http服务,获取数据
const http = require("http");
const server = http.createServer((req, res) => {
//设置容许跨域,CROS跨域
res.setHeader("access-control-allow-origin", "*");
res.write("传出的数据");
console.log(15326235135);
res.end();
});
server.listen(3000);
console.log("开始监听3000端口");
复制代码
点击页面时效果: