Node.js搭建WEB服务器

Node.js搭建WEB服务器

    • [1. 安装Node和nodemon插件](#1. 安装Node和nodemon插件)
    • [2. 引入http模块](#2. 引入http模块)
    • [3. 创建服务监听端口](#3. 创建服务监听端口)
    • [4. 解析接口地址](#4. 解析接口地址)
    • [5. 解析get参数](#5. 解析get参数)
    • [6. 解析post参数](#6. 解析post参数)

1. 安装Node和nodemon插件

powershell 复制代码
#全局安装nodemon插件
npm i nodemon -g

2. 引入http模块

powershell 复制代码
cosnt http = require('http')

3. 创建服务监听端口

powershell 复制代码
const server = http.createServer((req,res) => {
    if(req.method==='GET'){
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('get请求');
    }else if(req.method==='POST'){
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('post请求');
    }else{
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('其他请求');
    }
})

server.listen(3000,()=>{
    console.log('服务器启动成功')
})

4. 解析接口地址

powershell 复制代码
#引入url
const url = require('url')

const server = http.createServer((req,res) => {
	
	cosnt {pathname} = url.parse(res.url)
    if(req.method==='GET' && pathname === '/getInfo'){
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('get请求');
    }else if(req.method==='POST'){
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('post请求');
    }else{
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('其他请求');
    }
})

5. 解析get参数

使用url解构出query参数,再使用querystring格式化参数

powershell 复制代码
const qs = require('querystring')

const server = http.createServer((req,res) => {
	
	cosnt {pathname,query} = url.parse(res.url)
    if(req.method==='GET' && pathname === '/getInfo'){
        console.log(qs.parse(query))
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('get请求');
    }else if(req.method==='POST'){
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('post请求');
    }else{
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('其他请求');
    }
})

6. 解析post参数

powershell 复制代码
const server = http.createServer((req,res) => {
	
	cosnt {pathname,query} = url.parse(res.url)
    if(req.method==='GET' && pathname === '/getInfo'){
        console.log(qs.parse(query))
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('get请求');
    }else if(req.method==='POST'){
    	//接受参数
    	let data = ''
    	req.on('data',temp => {
    	data += temp
    	})
		//接受参数完毕解析
		req.on('end',()=>{
		console.log(qs.data)
		res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('post请求');
		})
        
    }else{
        res.setHeader('Content-Type','text/plain;charset=utf-8')
        res.end('其他请求');
    }
})
相关推荐
丘狸尾8 分钟前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
黑客老陈16 分钟前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
大猫和小黄19 分钟前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
正小安22 分钟前
Vite系列课程 | 11. Vite 配置文件中 CSS 配置(Modules 模块化篇)
前端·vite
Joyner201823 分钟前
【Linux】ubuntu通过远程命令行启动桌面应用
linux·服务器·ubuntu
ghostwritten26 分钟前
Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon
linux·运维·服务器
我是唐青枫28 分钟前
Linux xargs 命令使用教程
linux·运维·服务器
gallonyin28 分钟前
【监控】夜莺监控系统各环节资源压力分析
运维·服务器
暴富的Tdy1 小时前
【CryptoJS库AES加密】
前端·javascript·vue.js