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('其他请求');
    }
})
相关推荐
阿波罗尼亚4 分钟前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.15 分钟前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
IDC02_FEIYA21 分钟前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器
M158227690551 小时前
四通道全能组网!SG-Canet-410 CAN转以太网网关,破解工业CAN通信瓶颈
linux·运维·服务器
m0_748229992 小时前
Vue2 vs Vue3:核心差异全解析
前端·javascript·vue.js
C澒2 小时前
前端监控系统的最佳实践
前端·安全·运维开发
浪客灿心2 小时前
Linux库制作与原理
linux·运维·服务器
xiaoxue..2 小时前
React 手写实现的 KeepAlive 组件
前端·javascript·react.js·面试
bantinghy2 小时前
Nginx基础加权轮询负载均衡算法
服务器·算法·nginx·负载均衡
hhy_smile2 小时前
Class in Python
java·前端·python