学习了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;
     }});
}

175-1.png

标签: Nodejs

添加新评论