get+post的todolist

把列表放在items中,通过req.method判断post还是get,然后进行push操作,这里用querystring的parse将进行转译,

var http = require('http')
var items = []
var server = http.createServer(function (req, res) {
    if( '/' === req.url){
        switch (req.method){
            case 'GET':
                show(res);
                break;
            case 'POST':
                add(req, res)
                break;
            default:
                badRequest(res)
        }
    }else {
        notFound(res)
    }
})
server.listen(3000)

function show(res) {
    console.log(items)
    var html = '<html><head><title>todo list</title></head><body>' +
        '<h1>todo list</h1>' +
        '<ul>' +
        items.map(function(item){
            return '<li>'+item+'</li>'
        }).join('') +
        '</ul>' +
        '<form method="post" action="/">' +
        '<p><input type="text" name="item"></p>' +
        '<p><input type="submit" value="add item"></p>' +
        '</form>' +
        '</body></html>'

    res.setHeader('Content-Type', 'text/html')
    res.setHeader('Content-Length', Buffer.byteLength(html))
    res.end(html)

}
function notFound (res){
    res.statusCode = 404
    res.setHeader('Content-Type', 'text/plain')
    res.end('not found')
}
function badRequest(res) {
    res.statusCode = 400
    res.setHeader('Content-Type', 'text/plain')
    res.end('Bad Request')

}
var qs = require('querystring')
function add(req, res) {
    var body = ''
    req.setEncoding('utf8')
    req.on('data', function (chunk) {
        console.log(chunk)
        body += chunk
    })
    req.on('end', function () {
        var obj = qs.parse(body)
        items.push(obj.item)
        show(res)
    })
}

随机浏览