开发者学堂课程【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();
});