node-表单验证

本文介绍了一个简单的HTTP服务器的基本实现,并详细解释了如何处理用户登录请求,包括解析URL路径、响应不同请求类型以及POST请求的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var http = require('http');
var url = require('url');
var fs = require('fs');
var querystring = require('querystring');

var server = http.createServer();

var HtmlDir = __dirname + '/html/';

server.on('request', function( req, res ) {

    var urlStr = url.parse( req.url );

    switch (urlStr.pathname) {
        case '/':
            //首页
            sendData( HtmlDir + 'index.html', req, res );
            break;

        case '/user':
            //用户首页
            sendData( HtmlDir + 'user.html', req, res );
            break;

        case '/login':
            //用户登录
            sendData( HtmlDir + 'login.html', req, res );
            break;

        case '/login/check':
            //console.log(req.method);
            //console.log(urlStr);

            //console.log( querystring.parse(urlStr.query) );

            if (req.method.toUpperCase() == 'POST') {

                var str = '';

                req.on('data', function(chunk) {
                    str += chunk;
                })

                req.on('end', function() {
                    console.log(str);
                    console.log( querystring.parse( str ) );
                })

            }

            break;

        default:
            //处理其他情况
            sendData( HtmlDir + 'err.html', req, res );
            break;
    }

});

function sendData(file, req, res) {
    fs.readFile( file, function(err, data) {

        if (err) {
            res.writeHead(404, {
                'content-type' : 'text/html;charset=utf-8'
            });
            res.end('<h1>页面被LEO吃掉了</h1>');
        } else {
            res.writeHead(200, {
                'content-type' : 'text/html;charset=utf-8'
            });
            res.end(data);
        }

    } );
}

server.listen(8080, 'localhost');

 

转载于:https://www.cnblogs.com/mayufo/p/5187040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值