zoukankan      html  css  js  c++  java
  • 简单node服务器demo,麻雀虽小,五脏俱全

    //本服务器要实现的功能如下:
    //1.静态资源服务器(能读取静态资源)
    //2.能接收get请求,并能处理参数
    //3.能接收post请求,并能处理参数
    
    const http = require('http');
    const fs = require('fs');
    const url = require('url');
    const querystring = require('querystring');
    
    const server = http.createServer();
    server.on('request', (req, res) => {
        //用于存放get / post数据 
        let getParams = '',postParams = '';
    
        //处理get
        const obj = url.parse(req.url, true);
        let pathname = obj.pathname;
        getParams = obj.query;
    
        console.log('你发送的get数据如下:',getParams)
        //处理post
        let str = '';
        req.on('data',(data)=>{
            str += data;
        })
        req.on('end',()=>{
            postParams = querystring.parse(str);//将字符串转换为对象
            console.log('你发送的post数据如下:',postParams)
        })
        //处理文件
        if(pathname === '/'){
            pathname = '/index.html'
        }
        if(pathname.indexOf('favicon') != -1){
            return
        }
        let fileName = './' + pathname;
        fs.readFile(fileName,(err,data)=>{
            if(err){
                console.log(pathname)
                console.log(err)
            }else{
                res.write(data)
            }
            res.end();
            
        })
    
    })
    
    server.listen(8080, () => {
        console.log('服务器开启成功!')
    });
    //本服务器要实现的功能如下:
    //1.静态资源服务器(能读取静态资源)
    //2.能接收get请求,并能处理参数
    //3.能接收post请求,并能处理参数

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

    const server = http.createServer();
    server.on('request', (reqres=> {
        //用于存放get / post数据 
        let getParams = '',postParams = '';

        //处理get
        const obj = url.parse(req.urltrue);
        let pathname = obj.pathname;
        getParams = obj.query;

        console.log('你发送的get数据如下:',getParams)
        //处理post
        let str = '';
        req.on('data',(data)=>{
            str += data;
        })
        req.on('end',()=>{
            postParams = querystring.parse(str);//将字符串转换为对象
            console.log('你发送的post数据如下:',postParams)
        })
        //处理文件
        if(pathname === '/'){
            pathname = '/index.html'
        }
        if(pathname.indexOf('favicon'!= -1){
            return
        }
        let fileName = './' + pathname;
        fs.readFile(fileName,(err,data)=>{
            if(err){
                console.log(pathname)
                console.log(err)
            }else{
                res.write(data)
            }
            res.end();
            
        })

    })

    server.listen(8080, () => {
        console.log('服务器开启成功!')
    });
  • 相关阅读:
    【免费赠书】前端程序员修炼之路:积土而为山,积水而为海
    开源网站流量统计系统Piwik源码分析——后台处理(二)
    开源网站流量统计系统Piwik源码分析——参数统计(一)
    数学思维修炼
    《代码大全》中的变量
    linux dmesg命令参数及用法详解(linux显示开机信息命令)
    dd命令使用详解
    Linux就这个范儿 第10章 生死与共的兄弟
    Linux就这个范儿 第9章 特种文件系统
    Bash中的shopt选项
  • 原文地址:https://www.cnblogs.com/lguow/p/11806333.html
Copyright © 2011-2022 走看看