nodejs和cookie
nodejs导入导出数据
//a.js文件
var a = 10
var b = 20
exports.a = a
exports.b = b//b.js文件
var obj = require('./a')
console.log(obj);
结果:
fs写入文件
nodejs内部封装了fs模块 - 专门用于操作 文件的
使用内置的fs模块,第一个必须先导入 fs模块
覆盖写入,文件不存在,会自动创建 - 异步写入
//fs.writeFile是异步操作
var fs = require('fs')
// console.log(fs);
fs.writeFile('./test.txt','abcdef',err =>{
if(err){console.log('写入失败,错误是:' + err);
}else{console.log('写入成功');
}
})//同步写法
// fs.writeFileSync('./test.txt', 'aaa')
// console.log('写入成功');
读取文件
// 读取文件内容 - fs.readFile()
// 异步的读取
fs.readFile('./test.txt', (err, data) => {// err是读取的错误if(err){console.log("读取失败,错误是:" + err);return}// data就是读取出来的数据console.log(data); // <Buffer 61 61 61>// 在nodejs中有一种新的数据格式: buffer数据 - 用16进制来描述2进制数据的一种格式console.log( data.toString() );
})
//另外一种写法
fs.readFile('./test.txt', 'utf-8', (err, data) => {// err是读取的错误if(err){console.log("读取失败,错误是:" + err);return}console.log( data );
})//直接输出abcdef//同步写法
var data = fs.readFileSync('./test.txt', 'utf-8')
console.log(data);
console.log(111);
结果:
服务器的响应
// http模块 - 创建服务器的
// 导入http模块
var http = require('http')
// createServer - 创建服务器
var serve = http.createServer(function(request, response){// request用来存放所有请求信息 - 请求报文// response用来做出相应的对象response.end('this is my server!!!')
})
// 监听端口 - 0~65535 - 建议自定义端口范围在7000+
serve.listen(8848, function(){console.log("服务器启动成功,默认访问地址:http://localhost:8848");
})简化版
require('http').createServer(function(req, res){// 为了不乱码,可以加一个响应头 - 指定编码res.setHeader('content-type', 'text/html;charset=utf8')// 设置响应状态码和状态描述res.writeHead(404, 'zhao bu dao', {"content-type": 'text/html;charset=utf8'})// 专门用于 - 设置响应主体的res.write('服务器响应内容')// end方法主要用于结束这次响应res.end()
}).listen(9527)
服务器的请求
require('http').createServer(function(req, res){// req - 表示请求报文 - 所有的请求信息// 请求地址 - req.urlconsole.log(req.url); // 请求路径:地址中除了协议和域名,后面的部分// 请求方式 - req.methodconsole.log(req.method);// 请求头 - req.headersconsole.log(req.headers);// 请求主体console.log( req.url ); // 在地址中,从地址中获取到就好了// url解码 console.log( decodeURI(req.url) );// url编码 - encodeURI()res.end('ok')
}).listen(9527)
cookie和本地存储
cookie可以保持多次请求之间的状态 键值对组成 - 键=值
var date = new Date()//设置cookie的有效时间 是根据国际时间计算的,所以需要减去八个小时date.setTime(date.getTime()+20*1000-8*3600*1000)document.cookie = 'username=张三;expires='+date;
cookie将数据存在浏览器的一个空间中 - 只要多次请求使用的是同一个浏览器,就能从这个浏览器中获取到数据
本地存储 - 没有有效期 - 默认永久有效
// 设置localStorage.setItem('name','李四')// 获取console.log( localStorage.getItem('name') )// 删除localStorage.removeItem('name')// 按照域名存储的,当前域名下设置的数据,只能在当前域名下使用
json对象
{
键:值
}
一种文件类型 - json - 存储数据或传输数据
文件的后缀必须是 .json
内容必须是对象或数组
数组或对象的最后一项后面不允许加逗号
键必须是双引号
值是字符串的话,必须是双引号字符串