fs模块(文件操作)
- writeFile
const fs=require('fs'); //引入fs模块
//fs.writeFile(path,data,callback) //写入文件(path:文件名,data:文件内容,callback回调)
fs.writeFile('./a.txt', 'asdfghj', err=>{
if(err){
console.log("失败",err);
}else{
console.log("成功");
}
});
- readFile
//fs.readFile(path,callback) //读取文件
fs.readFile('./a.txt',(err,data)=>{
if(err){
console.log("错误", err);
}else{
console.log("成功",data);
}
});
Buffer:是二进制的转化,如果要显示自己原本输入的东西则:console.log(“成功”,data.toString());
http模板(网络操作)
-
服务器:响应请求、数据交互、数据库
-
数据交互
-
http—协议:规定了浏览器和服务器如何去交流
-
http报文结构:1.header(头):信息
2.body(身体):具体的内容或数据 -
状态码:
1xx:信息---------告诉你一个无关紧要的信息
2xx:成功------成共
3xx:重定向—你的资源在另一个地址,请找它要
4xx:请求错误----浏览器那边的错误
5xx:服务器错误—我们这边的错误 -
请求方式
-
GET:获取数据(数据放在url传输的)、容量少(<32k)。
-
POST:向服务器发送数据(数据放在body里)、容量大。
-
接收浏览器的GET数据----url
1.引入url模块
2.url.parse(req.url,true)=>{
pathname,query
}
GET=>"/aaa/b?xx=xxx&xxx=xx"
url.parse方法:https://blog.youkuaiyun.com/swimming_in_it_/article/details/77439975 -
接收浏览器的POST数据—body*
1.分几次进行
2.let arr=[];
req.on(‘datq’,buffer=>{
arr.push(buffer);
});
req.on(‘end’,()=>{
let buffer=Buffer.concat(arr);
});
POST=>“xx=xxx&xxx=xx”
- 接口—API
const http=require('http');
const url=require('url');
const querystring=require('querystring');
const fs=require('fs');
http.createServer((req, res)=>{
let path='', get={}, post={};
if(req.method=='GET'){
let {pathname, query}=url.parse(req.url, true);
path=pathname;
get=query;
complete();
}else if(req.method=='POST'){
path=req.url;
let arr=[];
req.on('data', buffer=>{
arr.push(buffer);
});
req.on('end', ()=>{
let buffer=Buffer.concat(arr);
post=querystring.parse(buffer.toString());
complete();
});
}
function complete(){
console.log(path, get, post);
}
}).listen(8080);
Node.js的模块系统
1.定义模块:(常用的模块:CMD、 AND、 ESN)
- module:批量输出
- exports:用于输出
- require
- 如果带有路径–去路径下面赵
- 如果没有不带路径–就去找node_modules文件夹或去找系统node_modules
exports.a = 12 //相当于var 一个对象
module.exports={
a:12,b:5
}