nodejs代办事项程序

创建一个js

let http = require('http');
let list = require('./listFn');


let server = http.createServer( (req, res) => {
    console.log(req.url);
    if ('/' == req.url){
        switch (req.method){
            case 'GET' :
                list.show(res);
                break;
            case 'POST' :
                list.add(req, res);
                break;
            default:
                list.badRequest(res);
        }
    }else{
        list.notFound(res);
    }
});

server.listen(8000);

再创建一个listFn.js,写事件

let qs = require('querystring');
let items = [];

module.exports = {
    show: (res) => {
        //嵌入一个html取代模板
        let html = `
            <!DOCTYPE html>
            <html lang="en">
            <head>
            <meta charset="UTF-8">
            <title>Todo List</title>
            </head>
            <body>
                <h1>Todo List</h1>
                    <ul>` +
                        items.map( (item) => {
                            return `<li> ${item} </li>`
                        }) +
                    `</ul>
                    <form action="/" method="post">
                        <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);
    },

    notFound(res){
    //    函数接收响应对象,将状态码设为404,响应主体设为not found
        res.statusCode = 404;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Not Found');
    },

    badRequest(res){
    //    向客户指明该请求无效
        res.statusCode = 400;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Bad Request');
    },

    add(req, res){
        let body = '';
        req.setEncoding('utf8');
        req.on('data', (chunk) => {
            body += chunk
        });
        req.on('end', () => {
            let obj = qs.parse(body);
            items.push(obj.item);
            this.show(res);
        })
    }


}

启动服务

然后浏览器登录localhost:8000;

能看到页面


欢迎关注我的个人技术公众号!javascript艺术


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值