Node.js 使用核心 http 模块搭建静态服务器并返回页面
本文介绍如何利用Node.js核心http模块手动搭建一个端口为8080的静态服务器。通过fs模块读取index.html、CSS及JS文件,并设置正确的Content-Type响应头,实现客户端请求页面的完整加载流程,同时展示了使用url模块优化路径解析的方法。
Node.js http模块创建静态服务器实例教程
具体实现步骤如下所示:
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.js 中可通过相关模块解决路径获取及后缀名解析的问题。
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 模块搭建服务器并返回页面的实例分享完毕,希望能为读者提供参考与支持。
怎么在本地运行JavaScript脚本:Node.js下载安装与环境配置教程
2026-11-05 09:02:33
JavaScript开发环境怎么搭建:Node.js安装与VS Code配置指南
2026-11-03 23:36:59
JavaScript零基础入门:环境搭建与第一个Hello World
2026-11-03 23:34:09
NW.js 是什么:基于 Chromium 和 Node.js 的桌面应用框架
2026-11-03 15:14:00
nvm、n 和官方安装包:哪种 Node.js 升级方式更适合你
2026-11-03 14:54:28
