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('服务器开启成功!')
    });
  • 相关阅读:
    软工2021个人阅读作业#2——构建之法和CI/CD的运用
    2021年.Net中级开发工程师面试题
    OneForAll框架搭建之旅:Vue + .NetCore WebApi(3)
    创建WebService服务--.NET Core与SoapCore 及遇到的问题(二)
    创建WebService服务--.NET Framework(一)
    面试小记
    Vue开发环境安装
    java笔记之设计模式 1、创建型模式:工厂方法
    Abp太重了?轻量化Abp框架
    Tomcat学习2:一键启动以及源码阅读
  • 原文地址:https://www.cnblogs.com/lguow/p/11806333.html
Copyright © 2011-2022 走看看