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('其他请求');
    }
})
相关推荐
csdn2015_20 分钟前
nodejs安装
node.js·vue
吃糖的小孩1 小时前
从只读页面到可控真实探针:我如何给 Owner Console 加手动诊断
前端
谷无姜1 小时前
为什么你的性能优化无效?可能是"木桶效应"在作祟
前端·性能优化
雾非雾1 小时前
《基于具身交互智能数字人技术:如何打造AI数字人宣讲平台"红厅智播”》
前端
jun_bai1 小时前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器
Revolution611 小时前
一段 JavaScript 代码执行时,到底发生了什么
前端·javascript
智能起源1 小时前
关于元素层级过多,导致压祯的问题(使用winform或者WPF应用的webview组件嵌套网页时,动效卡顿问题)
前端
RisunJan2 小时前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
Old Uncle Tom2 小时前
银行用户画像 -- 金融目标与需求意图
前端·人工智能·金融