Nodejs简易留言板
学习了Nodejs的Post后写的一个非常简易的留言板。
一共三个文件:main.js(主程序),index.html(页面模板),input.txt(留言内容)。
var http = require('http');
var fs = require("fs");
var querystring = require('querystring');
http.createServer(function (req, res) {
var post = '';
req.on('data',function(chunk){
post += chunk;//接收来自游览器的Post信息
console.log(chunk);
})
req.on('end',function(){
post = querystring.parse(post);//Post数据转换
console.log('post:',post);
res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});//请求头,一定要加,否则游览器访问会变成下载这个网页
var data = fs.readFileSync('index.html');//同步读取
if(post.id && post.user && post.text){//判断数据是否为空
if(input(post.id,post.user,post.text) != -1){//判断报错
res.write('感谢反馈!');
}else{
res.write('ERROR');
}
}else{
res.write(data.toString());//返回表单
}
res.end();
});
}).listen(80);
function input(id,user,text){
var data = fs.readFileSync('input.txt');//同步读取
data += JSON.stringify({'id':id,'user':user,'text':text});//以JSON的方式存储信息,input.txt必须存在,否则报错
data += '\n';
fs.writeFile('input.txt',data,{flag:'w',encoding:'utf-8',mode:'0666'},function(err){
if(err){
return -1;
}});
}