Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >node.js:简单的HTTP服务器

node.js:简单的HTTP服务器

作者头像
姓王者
发布于 2024-12-20 05:29:00
发布于 2024-12-20 05:29:00
21400
代码可运行
举报
文章被收录于专栏:姓王者的博客姓王者的博客
运行总次数:0
代码可运行

node.js:简单的HTTP服务器

有意思,实现文件访问了

引入需要的部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const http = require('http');
const fs = require('fs');
const path = require('path');

第一个http服务,第二个fs文件操作,第三个路径相关

第一步:创建http

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const server = http.createServer((req, res) => {

});

第二部:http回调函数

定义路径

在回调函数里面写功能 首先定义路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let url = new URL(req.url, `http://${req.headers.host}`);
let pathname = url.pathname;
let filePath = path.join(__dirname, pathname);
//可以加个log看一下路径是否正确,这会在服务器运行,路径访问时打印
// console.log('Request for:' , filePath);

读取文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fs.readFile(filePath, (err, data) => {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/plain'});
      res.end('Not found');
      return;
    } else {
      // 根据文件扩展名设置Content-Type
     // const ext = path.extname(filePath).toLowerCase();
      //const mimeTypes = {
        //'.html': 'text/html',
        //'.js': 'application/javascript',
        //'.css': 'text/css',
        // 其他文件类型...
       //现代浏览器的资源嗅探已经足够先进,因此对文件扩展名设置Content-Type并不是必要的
      //};
     // const contentType = mimeTypes[ext] || 'application/octet-stream';
     // res.writeHead(200, {'Content-Type': contentType});
      res.end(data);
    }
  })

设置端口,启动服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const server = http.createServer((req, res) => {
// 使用req.url和req.headers.host来创建完整的URL对象
let url = new URL(req.url, `http://${req.headers.host}`);
let pathname = url.pathname;

// 构建文件系统路径
let filePath = path.join(__dirname, pathname);

console.log('Request for:', filePath);

fs.readFile(filePath, (err, data) => {
if (err) {
res.writeHead(404, {'Content-Type': 'text/plain'});
res.end('Not found');
return;
} else {
//   // 根据文件扩展名设置Content-Type
//   const ext = path.extname(filePath).toLowerCase();
//   const mimeTypes = {
//     '.html': 'text/html',
//     '.js': 'application/javascript',
//     '.css': 'text/css',
//     // 其他文件类型...
//  现代浏览器的资源嗅探已经足够先进,因此对文件扩展名设置Content-Type并不是必要的
//   };
//   const contentType = mimeTypes[ext] || 'application/octet-stream';
//   res.writeHead(200, {'Content-Type': contentType});
res.end(data);
}
});
});

server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});

hello world

2024-12-11-175244
2024-12-11-175244
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024/12/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nodejs核心api-http模块
我们知道传统的HTPP服务器会由Aphche、Nginx、IIS之类的软件来担任,但是nodejs并不需要,nodejs提供了http模块,自身就可以用来构建服务器,而且http模块是由C++实现的,性能可靠。大部分的node使用者,都是用node来做Web API的,而HTTP模块是提供Web API的基础。为了支持所有的HTTP应用,node中的HTTTP模块提供的API是偏向底层化的。利用HTTP模块,我们可以简单快速搭建一个Web Server。
conanma
2022/01/04
2.6K0
如何使用node的http模块部署前端build包
在Web开发中,经常需要搭建一个能够提供静态文件访问的服务器。无论是用于本地开发调试,还是用于部署网站,这都是一个常见的需求。本篇文章将介绍如何使用Node.js和其内置的HTTP模块来创建一个简单的静态文件服务器。
用户6297767
2023/11/21
4520
如何用Node去写一个Web应用框架
IMWeb前端团队
2017/12/29
7790
读书笔记-《了不起的node.js》- HTTP
HTTP协议建立在请求和响应的概念上,对应在Node.js中就是有http.ServerRequest和http.ServerResponse这两个构造器构造出来的对象。
用户3258338
2019/07/19
6170
读书笔记-《了不起的node.js》- HTTP
node之url模块
爱学习的前端歌谣
2023/11/24
2000
node之url模块
node之新版url模块
爱学习的前端歌谣
2023/11/27
1970
node之新版url模块
利用 nodeJS 搭建一个简单的Web服务器
在服务器根目录下打开 cmd 并运行 node WebServer 命令,然后在浏览器中输入 http://localhost:8124/ 即可查看。
黄啊码
2020/05/29
2.7K0
node读取文件进阶(详解)
刚才简单介绍了一下node读取同级页面的html文件,没有类似于Apache的服务,让访问变得复杂,因为这样正是成就了node的优点!优良的路由处理,通过路由访问不同内容!
十月梦想
2018/08/29
5960
node之http模块之爬虫和event
我是歌谣 微信公众号关注前端小歌谣一起学习前端知识 今天继续给大家讲解node中爬虫的讲解
爱学习的前端歌谣
2023/12/10
2170
node之http模块之爬虫和event
使用noode.js创建一个服务器
打开gitbash,切换到js文件当前的文件夹,然后输入node index.js(index.js是我的js文件名,反正你们取什么名就输入啥名)
bamboo
2019/01/29
1.6K0
使用noode.js创建一个服务器
Node.js基础常用知识点全总结
Node.js是一个javascript运行环境。它让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能,可以与PHP、Java、Python、.NET、Ruby等后端语言平起平坐。
害恶细君
2022/11/22
3.6K0
Node.js基础常用知识点全总结
前端本地缓存概况之浏览器缓存策略
一直以来,前端性能优化 都是前端程序员在业务开发过程中不得不考虑的一个点。前端同学也一直寄希望于服务器更大的吞吐量、更密集的cdn节点;更寄希望于浏览用户使用更优秀的浏览器及更大的带宽。。。然而随着上述几种情况一一被落实时,前端性能仍然没有达到一个让人满意的结果。。。
YP小站
2020/07/15
1.9K0
前端本地缓存概况之浏览器缓存策略
【Node.js】初识Node.js
本文介绍了Node.js的架构特点、优点以及应用,并通过实例介绍了Node.js在Web开发中的基础应用。同时,文章还分享了Node.js的学习资料和备忘,包括IDE的使用和常用工具。
宋凯伦
2018/01/04
23.3K0
【Node.js】初识Node.js
HTTP请求与响应处理
客户端向服务器端发送请求时,有时需要携带一些客户信息, 客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。
清出于兰
2020/10/29
1.1K0
HTTP请求与响应处理
附件下载原来如此简单
之前我们已经了解过了 POST 上传的数据处理,以及包括上传的图片怎么处理,那么文件下载又是一个怎么样的过程呢?今天就要来好好说道说道。
Qiang
2019/06/22
8990
Node.js做静态资源服务器
在上一篇文章介绍了Node.js基础API 接下来我们做一个案例,用Node.js实现静态资源服务器
切图仔
2022/09/14
2.5K0
Node.js做静态资源服务器
使用NodeJS 搭建静态服务器
解析URL需要用到Node.js提供的url模块,它使用起来非常简单,通过parse()将一个字符串解析为一个Url对象:
九旬
2020/10/23
2.1K0
使用NodeJS 搭建静态服务器
Node.js资源
服务器端不需要处理,可以直接响应给客户端的资源就是静态资源,例如CSS、JavaScript、image文件。
Qwe7
2022/04/22
9570
Node.js 三大特点你都懂了吗
在Java、PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让Web应用程序支持更多的用户,就需要增加服务器的数量,而Web应用程序的硬件成本当然就上升了。
Bug开发工程师
2018/09/21
1.7K0
Node.js 三大特点你都懂了吗
node.js程序创建 http 静态web服务器
这里的http静态服务器是指创建静态网站,并且通过node.js创建静态web服务器来向客户端提供服务。一个静态web服务器的例子就是Apache,只需要把网站相关的html,css,javascript,jpg等静态资源放到Apache的目录下,只需要访问主机名就可以显示网页了。
conanma
2022/01/05
1.5K0
相关推荐
nodejs核心api-http模块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验