//本服务器要实现的功能如下:
//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. Linux系统学习 十一、DHCP服务器—相关文件、配置文件、服务器配置

    2.DHCP服务器相关文件 安装SHCP服务器 yum install dhcp 对应的端口 端口号: ipv4 udp67.udp68(不推荐改端口) ipv6 udp546.udp547(暂时还没 ...

  2. OS X 下 OpenGL 4.x 环境配置

    配置: OS X 10.10 + CMake 3.2.2 + GLFW 3.1.1 + OpenGL 4.1 + Xcode 6.0 本文主要介绍如何在 OS X 系统下进行环境配置,使得 Xcode ...

  3. Mysql基本注入

    实验环境:墨者学院Mysql手工注入漏洞测试靶场 后台源码没有进行任何字符过滤. 首先进入靶场环境 先用admin登陆试试 果然不行,这时看到用户登录下方有一个停机维护通知,点进去瞅瞅 看到这里链接上 ...

  4. 26.异常检测---孤立森林 | one-class SVM

    novelty detection:当训练数据中没有离群点,我们的目标是用训练好的模型去检测另外发现的新样本 outlier  dection:当训练数据中包含离群点,模型训练时要匹配训练数据的中心样 ...

  5. 12. Go 语言文件处理

    Go 语言文件处理 本章我们将带领大家深入了解一下 Go语言中的文件处理,重点在于文件而非目录或者通用的文件系统,特别是如何读写标准格式(如 XML 和 JSON 格式)的文件以及自定义的纯文本和二进 ...

  6. volatile可见性案例-黑马

    volatile可见性案例-黑马 package com.mozq.demo.demo; class Task implements Runnable{ //public boolean flag = ...

  7. 浅谈C++ STL string容器

    浅谈C++ STL string容器 本篇随笔简单讲解一下\(C++STL\)中\(string\)容器的使用方法及技巧. string容器的概念 其实\(string\)并不是\(STL\)的一种容 ...

  8. Docker和ASP.NET Core

    Docker和ASP.NET Core Docker 正在逐渐成为容器行业的事实标准,受到 Windows 和 Linux 生态系统领域最重要供应商的支持. (Microsoft 是支持 Docker ...

  9. c博客06-结构体&文件

    1.本章学习总结 1.1 学习内容总结 结构体的定义.成员的赋值: 结构体的一般定义形式(单独定义): struct 结构名 { 类型名 结构体成员名1; 类型名 结构体成员名2; ... 类型名 结 ...

  10. excel中添加下拉候选

    这里简单记录下如何在Excel2013中添加下拉候选. 首先有个思路是,下拉候选也就意味着数据被限制在一个范围之内,因此应该联想到数据验证相关的设置. 选中单列或单元格,在[数据]下的[数据验证]中选 ...