1.模块化
导出命令:module.exports = ‘模块名’;
导入命令:require 例如:let app= require(‘app’);
2.文件系统
异步写入 :writeFile(src,info,err=>{
}
同步写入:writeFileSync(src,info,err=>{
}
异步读取:readFile(src,encode,(err,data)=>{
}
同步读取:readFileSync(src,encode,(err,data)=>{
}
3.http模块
createServer() :创建服务器
Listen() :监听端口
request对象:包含了所有客户端请求信息
response对象:包含了所响应客户端信息
例如:注册界面的书写
let http = require('http'); //获取HTTP请求
let fs = require('fs'); //获取文件的请求
const PORT = 9000; //端口号
let User = require('../user/user');
let server = http.createServer((req, res) => {
res.writeHead(200, {
'Content-Type': 'text/html;charset=utf-8', //字符编码
'Access-Control-Allow-Origin': '*'//解决跨域问题
});
// /register?username=Tom&pwd=123
console.log(req.url); //获取url数据
let url = req.url.substring(1); //清楚url中的‘/’
url=decodeURI(url);//对接收到的路径进行编码处理
let urlArr = url.split('?'); //将接口名和参数分离
let path = urlArr[0]; //获取端口名称
let params = urlArr[1]; // 获取参数
if (path == 'register') {
saveDate(params, function (obj) {
res.write(JSON.stringify(obj)); //将数据响应给前端
res.end(); //结束请求
});
} else if (path == 'login') {
console.log('登录功能');
}
});
//监听
server.listen(PORT, err => {
if (err) {
console.log(`错误:${err}`);
}
})
console.log(`服务器正在运行,端口为${PORT}`);
console.log('----------end----------')
//处理数据
function saveDate(params, fn) {
console.log('参数:', params);
//username=Tom&pwd=123
var obj = {} 响应给前端的对象
let arr = params.split('&');
let username = arr[0].split('=')[1]; //获取用户名参数
let pwd = arr[1].split('=')[1]; //获取密码参数
let person = new User(username, pwd); //创建用户对象示例
getData(function (dateArr) {
// console.log('你好')
dateArr.push(person);
//将数据写入本地
fs.writeFile('../txt/myData.txt', JSON.stringify(dateArr), 'utf-8', err => {
if (!err) {
obj.code = 202;
obj.msg = '注册成功'
} else {
obj.code = 502;
obj.msg = '注册失败'
};
fn(obj); //调用函数
})
})
}
//读取本地文件数据
function getData(fn) {
let arr = []; //空数组,保存读取到的本地数据
fs.readFile('../txt/myData.txt', 'utf-8', (err,data) => {
if (!err) {
console.log('本地数据:', data);
arr = JSON.parse(data);
} else {
//读取失败
console.log('读取本地注册信息失败');
}
fn(arr);
});
}