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('服务器开启成功!')
    });
  • 相关阅读:
    vs2017默认以管理员运行
    net abp core的appservice中访问httpcontext对象
    .net core 支持apk下载
    EF Core 2.1变化
    .Net 高效开发之不可错过的实用工具
    win10 远程出现身份验证错误 要求的函数不受支持
    分享个百度网盘下载工具
    mysql迁移sqlserver
    2020.08.11 【ABAP随笔】-ITS Mobile 配置
    2020.05.07 【ABAP随笔】- ABAP-SM30删除前检查
  • 原文地址:https://www.cnblogs.com/lguow/p/11806333.html
Copyright © 2011-2022 走看看