简单node服务器demo,麻雀虽小,五脏俱全
//本服务器要实现的功能如下: //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(8080, () => {
console.log('服务器开启成功!')
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通