开发者学堂课程【Node.js 入门与实战:封装写入data.json文件的方法】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8291
封装写入data.json文件的方法
目录
一、封装写入data.json文件的方法
二、例子
一、封装写入data.json文件的方法
//封装一个写入data.json文件的函数
function writeNewsData(data.callback){
fs,writeFile(path.join(__dirname,’data’,’data.json’),data,function(err) {
if (err) {
throw err;
}
//调用callback()来执行当写入数据完毕后的操作
callback();
});
}
二、例子
} else if (req.url ===’/add’&& req.method === ‘post’) {
//读取data.json
readNewsData(function(list) {
var array = [];
req.on(‘data’,function(chunk) {
//此处的chunk参数,就是浏览器本次提交过来的一部分数据
//chunk的数据类型是Buffer(chunk就是一个Buffer对象)
array.push(chunk);
});
//监听request对象的end事件
//当end事件被触发的时候,表述上所有数据都已经提交完毕了
req.on(‘end’,function() {
//在这个事件中只要把array中的所有数据汇总起来就好了
//把array中的每个buffer对象,集合起来转换为一个buffer对象
//title=fffffff&ur1=fffff&test=fffff
//{title:’fffff’,url:’fffff’,text:’fffff’)
//JSON.parse();
var postBody = Budder.concat(array);
//consloe.log(postBody);
//把获取到的buffer对象转换为一个字符串
postBody=postBody.toString9‘utf8’)
//把post请求的查询字符串转换为一个json对象
postBody=querystring.parse(postBody);
//console.log(postBody);
//在把新闻添加到list之前,为新闻添加一个id属性
postBody.id=list.length;
//将用户提交的新闻放到list中
list.pust(postBody);
//将新的list数组,再写入到data.json文件中
writsNewData(JSON.stringfy(list),function() {
//重定向
res.statusCode=302;
res.statusMessage=’Found’;
res.setHeader(‘Location’,’/’);
res.end();
});