node.js 核心http模块,起一个服务器,返回一个页面的实例

发布时间 - 2026-01-11 03:11:21    点击率:

如下所示:

let http=require("http"); //引入核心http模块
let fs=require("fs");
let mime={
 '.js':'application/javascript',
 '.css':'text/css'
}
//创建一个函数,req代表客户端,res代表服务器可写流
let listener=(req,res)=>{
//res是可写流,有write和end

 if(req.url==="/"){
  //设置编码
  res.setHeader('Content-Type','text/html;charset=utf-8');
  fs.createReadStream('index.html').pipe(res);
 }else{
  if(fs.existsSync(`.${req.url}`)) {
   res.setHeader('Content-Type',mime[req.url.match(/\.\w+$/)[0]] +';charset=utf-8');
   fs.createReadStream(`.${req.url}`).pipe(res);
  }else{
   res.statusCode=404;
    res.end();
  }
 }

}
let port=8080;
//创建一个服务,放入一个监听函数,
let server=http.createServer(listener);
//
server.listen(port,function () {
 //启动成功后
 console.log(`start${port}`);
})

看上面代码,我们需要先创建三个文件

index.html

index.css

index.js

html文件里面,我们要引进css和js文件

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <!--服务端引用路径不支持相对路径-->
 <link rel="stylesheet" href="index.css" rel="external nofollow" >
 <script src="index.js"></script>
</head>
<body>
<div>你好,帅吗</div>
</body>
</html>

我们运行上面js文件时候,就会创建一个静态服务器,端口8080

然后返回客户端一个index.html文件

浏览器渲染这个html文件,我们对应的css和js就加载进去了

其实上面写法不是很简便,node里面有模块解决路径获取后缀名的问题,还有路径问题

let http=require("http"); //引入核心http模块
let fs=require("fs");
let mime=require("mime"); //解决文件类型
let url=require("url");
//创建一个函数,req代表客户端,res代表服务器可写流
let listener=(req,res)=>{
//res是可写流,有write和end
 let {query,pathname}=url.parse(req.url,true);
 if(pathname==="/"){
  //设置编码
  res.setHeader('Content-Type','text/html;charset=utf-8');
  fs.createReadStream('index.html').pipe(res);
 }else{
  if(fs.existsSync(`.${pathname}`)) {
   //mime 第三方包 npm install mime --save
   //mime.lookup可以通过文件路径后缀判断是什么类型的
   res.setHeader('Content-Type', mime.lookup(pathname)+';charset=utf-8');
   fs.createReadStream(`.${pathname}`).pipe(res);
  }else{
   res.statusCode=404;
   res.end();
  }
 }

}
let port=8080;
//创建一个服务,放入一个监听函数,
let server=http.createServer(listener);
//
server.listen(port,function () {
 //启动成功后
 console.log(`start${port}`);
})

以上这篇node.js 核心http模块,起一个服务器,返回一个页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# nodejs  # http模块  # Node.js使用http模块实现后台服务器流程解析  # Node.js 搭建后端服务器内置模块( http+url+querystring 的使用)  # Node.js基础入门之path模块  # url模块  # http模块使用详解  # 基于Node.js的http模块搭建HTTP服务器  # node.js使用http模块创建服务器和客户端完整示例  # Node.js进阶之核心模块https入门  # node.js中http模块和url模块的简单介绍  # Node.js中Request模块处理HTTP协议请求的基本使用教程  # Node.js 中 http 模块的深度剖析与实战应用小结  # 创建一个  # 客户端  # 给大家  # 一个函数  # 就会  # 不是很  # 可以通过  # 希望能  # 不支持  # 所示  # 这篇  # 第三方  # 进去了  # 小编  # 服务端  # 大家多多  # 加载  # 你好  # 看上面  # 是可写流 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中数组(Array)对象和字符串(String)对象的常用方法总结  QQ浏览器网页版登录入口 个人中心在线进入  香港网站服务器数量如何影响SEO优化效果?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel怎么调用外部API_Laravel Http Client客户端使用  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何与Pusher实现实时通信?(WebSocket示例)  javascript中对象的定义、使用以及对象和原型链操作小结  如何在阿里云完成域名注册与建站?  简单实现Android验证码  青岛网站建设如何选择本地服务器?  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何为API编写文档_Laravel API文档生成与维护方法  黑客如何通过漏洞一步步攻陷网站服务器?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何破解联通资金短缺导致的基站建设难题?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  免费视频制作网站,更新又快又好的免费电影网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  英语简历制作免费网站推荐,如何将简历翻译成英文?  北京网站制作的公司有哪些,北京白云观官方网站?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Java遍历集合的三种方式  Android okhttputils现在进度显示实例代码  如何注册花生壳免费域名并搭建个人网站?  Laravel如何实现本地化和多语言支持?(i18n教程)  怎么用AI帮你为初创公司进行市场定位分析?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  详解Huffman编码算法之Java实现  HTML 中动态设置元素 name 属性的正确语法详解  企业网站制作这些问题要关注  如何用VPS主机快速搭建个人网站?  如何快速生成可下载的建站源码工具?  微信公众帐号开发教程之图文消息全攻略  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  如何正确选择百度移动适配建站域名?  如何在Windows 2008云服务器安全搭建网站?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何做网站制作流程,*游戏网站怎么搭建?  大同网页,大同瑞慈医院官网?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  PHP正则匹配日期和时间(时间戳转换)的实例代码  教你用AI润色文章,让你的文字表达更专业