//本服务器要实现的功能如下:
//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', (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(, () => {
    console.log('服务器开启成功!')
});

简单node服务器demo,麻雀虽小,五脏俱全的更多相关文章

  1. 初学Node(六)搭建一个简单的服务器

    搭建一个简单的服务器 通过下面的代码可以搭建一个简单的服务器: var http = require("http"); http.createServer(function(req ...

  2. 搭建一个最简单的node服务器

    搭建一个最简单的node服务器 1.创建一个Http服务并监听8888端口 2.使用url模块 获取请求的路由和请求参数 var http = require('http'); var url = r ...

  3. Node学习(二) --使用http和fs模块实现一个简单的服务器

    1.创建一个www目录,存储静态文件1.html.1.jpg. * html文件内容如下: 12345678910111213 <html lang="en">< ...

  4. 创建简单的node服务器

    昨天咱们说了封装ajax,今天咱们说一下 自己创建一个建议的node服务器: 话不多说直接上代码: var http = require('http') //对URL 解析为对象//1.导入模块 UR ...

  5. 亚马逊EC2服务器申请+NODE服务器部署+阿里云域名申请+SSL证书使用

    最近,由于项目需要,自己申请了一台亚马逊用于部署网站测试,在使用期间,发现网上没有一篇非常完整的文章讲解从服务器申请到域名解析,SSL证书申请的整个流程.所以自己总结一下,以供大家学习! 一.亚马逊E ...

  6. C#中使用Socket实现简单Web服务器

    上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 熟悉Socket编程: 熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重 ...

  7. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

  8. 手把手教你从购买vps到搭建一个node服务器

    要准备什么? 1.5刀 2.最好有FQ软件(可以用蓝灯) let's Go! 一.vps购买 vps可以选择digital ocean(do) 链接 ,由于是外国网站,响应比较慢,所以最好翻个墙. g ...

  9. 运用socket实现简单的服务器客户端交互

    Socket解释: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意 ...

随机推荐

  1. [Go]TCP服务中增加消息队列与工作池

    之前的处理中每一个连接都会创建一个主groutine , 每个连接中的主groutine中创建出读groutine 和写groutine 每个连接处理业务再单独开出一个groutine ,这样如果有1 ...

  2. Spring afterPropertiesSet方法

    1.init-method方法,初始化bean的时候执行,可以针对某个具体的bean进行配置.init-method需要在applicationContext.xml配置文档中bean的定义里头写明. ...

  3. 2019年跨越速递Java工程师笔试题

    1.下面哪个选项可以用于JSP页面之间传递对象(A C) A application B page C session D error  E response 评语:这道题考察的是对JSP内置对象的了 ...

  4. MySQL数据以全量和增量方式,同步到ES搜索引擎

    本文源码:GitHub·点这里 || GitEE·点这里 一.配置详解 场景描述:MySQL数据表以全量和增量的方式向ElasticSearch搜索引擎同步. 1.下载内容 elasticsearch ...

  5. 【已解决】前端到后端400错误(The server cannot or will not process the request due to...)

    看到400错误,一般是请求无效.出现该异常一般有三种情况: 第一种情况: 前端提交的内容在后端一般都用String类型来接收,用Date类型接收会报错. 第二种情况: 在提交表单的时候,填写的数据类型 ...

  6. .NET轻松实现支付宝服务窗网页授权并获取用户相关信息

    前言: 最近在开发一个商业街区的聚合扫码支付功能,其中需要用到的有支付宝,微信两种支付方式,当然对于开发微信支付而已作为自己的老本行已经比较熟悉了,然而对于我来说支付宝支付还是头一次涉及到.这次项目中 ...

  7. ASP.NET Core 2.2 WebApi 系列【八】统一返回格式(返回值、模型验证、异常)

    现阶段,基本上都是前后端分离项目,这样一来,就需要前后端配合,没有统一返回格式,那么对接起来会很麻烦,浪费时间.我们需要把所有接口及异常错误信息都返回一定的Json格式,有利于前端处理,从而提高了工作 ...

  8. ASP.NET Core部署系列二:发布到CentOS上

    前言: 在上一节中,通过一系列的步骤,已经将项目部署到IIS上,虽然遇到了一些问题,但最终解决并成功运行了.而在这一节中,将尝试通过linux系统的环境下,部署项目,实现Net Core跨平台的亮点. ...

  9. 配置, 映射WebDAV, 并通过IIS网站访问

    服务端 0. 服务端安装IIS时, 选中WebDAV发布, Windows身份验证, 安装完毕后, 打开IIS管理器(inetmgr); 1. 新建网站或使用默认网站, 创建虚拟目录, 虚拟目录物理路 ...

  10. Go-获取变量数据类型

    package main import ( "fmt" "reflect" //这个包里的TypeOf方法获取变量数据类型 ) func main(){ b : ...