iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >在windows上用nodejs搭建静态文件服务器的简单方法
  • 901
分享到

在windows上用nodejs搭建静态文件服务器的简单方法

静态简单文件服务器 2022-06-04 17:06:54 901人浏览 薄情痞子
摘要

在windows上用nodejs搭建一个静态文件服务器,即使你一点基础没有也能学会nodejs静态文件服务器的搭建,本文介绍的非常详细,很适合零基础入门的朋友学习。 首先安装nodejs: •

windows上用nodejs搭建一个静态文件服务器,即使你一点基础没有也能学会nodejs静态文件服务器的搭建,本文介绍的非常详细,很适合零基础入门的朋友学习

首先安装nodejs:

•新建一个node文件夹

•下载node.exe到该文件夹

•下载npm然后解压到该文件夹

•现在node文件夹是这样的

查看图片

•把该目录加入到path环境变量

•在命令行执行


node -v
npm -v

如果得到了版本号则表示nodejs安装完成

•在命令行中执行


npm config set reGIStry https://registry.npm.taobao.org

以后安装nodejs模块 都会从淘宝的npm镜像中下载

•如果想要发布自己的模块到npm要先把npm的registry切换回来


npm config set registry Https://registry.npmjs.org

接下来搭建静态文件服务器

•创建一个文件夹server,一个文件夹root,server内是服务器的js代码,root是根目录

•server文件夹里面创建js文件 index.js mime.js server.js

•index.js


var server = require('./server.js');
var rootpath = 'root';
var sv = server.create({
port: '9587',
host: '127.0.0.1',
root: rootpath
}); 
•mime.js 
var types = {
"CSS": "text/css",
"less": "text/css",
"gif": "image/gif",
"html": "text/html",
"ejs": "text/html",
"ico": "image/x-icon",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"js": "text/javascript",
"JSON": "application/json",
"pdf": "application/pdf",
"png": "image/png",
"svg": "image/svg+xml",
"swf": "application/x-shockwave-flash",
"tiff": "image/tiff",
"txt": "text/plain",
"wav": "audio/x-wav",
"wma": "audio/x-ms-wma",
"wmv": "video/x-ms-wmv",
"xml": "text/xml",
"default": "text/plain"
};
module.exports = function (ext) {
return types[ext] || 'text/plain'
}

•server.js


var http = require('http');
var path = require('path');
var fs = require('fs');
var url = require("url");
var mime = require('./mime.js');
function getPromise(cbk) {
return (new Promise(cbk));
}
exports.create = function (opts) {
var root = opts.root;
var sv = http.createServer();
function request(request, response) {
var pathname = decodeURIComponent(url.parse(request.url).pathname);
var realPath = path.resolve(path.join(root, pathname));//请求的实际路径
getPromise(function (resolve, reject) {
fs.exists(realPath, function (isExists) {//判断路径是否存在
isExists ? resolve() : reject();
});
}).catch(function () {
resWrite(response, '404', 'html', '<h1>404</h1>file or dir : <h3>' + pathname + '</h3>not found');
}).then(function () {
return getPromise(function (resolve, reject) {
fs.stat(realPath, function (err, stat) {//判断路径是文件还是文件夹
if (err) {
reject(err);
} else {
resolve(stat);
}
})
}).then(function (stat) {
if (stat.isFile()) {//路径对应的是一个文件
resFile(response, realPath);
} else if (stat.isDirectory()) {//路径对应的是一个文件夹
var defaultIndexPath = path.resolve(realPath, 'index.html');
return getPromise(function (resolve, reject) {
fs.exists(defaultIndexPath, function (isExists) {
if (isExists) {//如果该文件夹内有index.html
resolve(true);
} else {//该文件夹内没有index.html 则 显示该文件夹的内容列表
resolve(false);
}
})
}).then(function (isExistsIndex) {
if (isExistsIndex) {
resFile(response, defaultIndexPath);
} else {
return getPromise(function (resolve, reject) {
fs.readdir(realPath, function (err, list) {
if (err) {
reject(err);
} else {
resolve(list);
}
})
}).then(function (list) {
var pmlist = list.map(function (item) {
return (new Promise(function (resolve, reject) {
fs.stat(path.resolve(realPath, item), function (err, stat) {
if (err) {
console.error(err);
resolve('');
} else if (stat.isFile()) {
resolve(`<li class="file"><a href="${item}">${item}</a></li>`);
} else if (stat.isDirectory()) {
resolve(`<li class="dir"><a href="${item}/">${item}</a></li>`);
} else {
resolve('');
}
})
}));
});
Promise.all(pmlist).then(function (linkList) {
var links = '<ul>';
links += '<li class="dir"><a href="../">../</a></li>';
links += linkList.join('');
links += '</ul>';
var dirPage = `
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<style>
a{color:blue;text-decoration: none;}
.dir a{color:orange}
</style>
</head>
<body>
${links}
</body>
</html>
`;
resWrite(response, '200', 'html', dirPage);
});
}).catch(function (err) {
resWrite(response, '500', 'default', err.toString());
})
}
})
} else {//既不是文件也不是文件夹
resWrite(response, '404', 'html', '<h1>404</h1>file or dir : <h3>' + pathname + '</h3>not found');
}
}).catch(function (err) {
resWrite(response, '500', 'default', err.toString());
})
})
}
sv.on('request', request);
sv.listen(opts.port, opts.host);
return sv;
};
function resFile(response, realPath) {//输出一个文件
fs.readFile(realPath, function (err, data) {
if (err) {
resWrite(response, '500', 'default', err.toString());
} else {
var ext = path.extname(realPath).toLocaleLowerCase();
ext = (ext ? ext.slice(1) : 'unknown');
resWrite(response, '200', ext, data);
}
});
}
function resWrite(response, statusCode, mimeKey, data) {
response.writeHead(statusCode, {'Content-Type': mime(mimeKey)});
response.end(data);
}

•在server文件夹内按住shift按钮,鼠标右键点击文件夹内空白区域,点击在此处打开命令窗口,执行命令


node index.js

以上所述是小编给大家介绍的在windows上用nodejs搭建静态文件服务器的简单方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: 在windows上用nodejs搭建静态文件服务器的简单方法

本文链接: https://www.lsjlt.com/news/12979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux上搭建Socks5服务器最简单的方法
    说起socks5,这种服务是有点年头了。 以前最知名的socks5服务端就属ss5,但这老掉牙的玩意着实不太行。看这个文档: linux搭建socks5代理_linux ss5_Venele的博客-CSDN博客 又要装一大堆工具,还很难配置...
    99+
    2023-08-31
    服务器 linux socks5
  • 如何使用Nodejs搭建服务器访问html、css、JS等静态资源文件
    这篇文章给大家分享的是有关如何使用Nodejs搭建服务器访问html、css、JS等静态资源文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一步,俗话说的好,工欲善其事,必先...
    99+
    2024-04-02
  • 如何使用Nginx搭建详细的静态文件服务器【经典】
    Nginx是一种强大的Web服务器,可以用于托管静态文件。本文将详细介绍如何使用Nginx搭建一个静态文件服务器,使您能够轻松地浏览目录、导航子目录和文件,并通过浏览器下载文件。 以下是使用Nginx...
    99+
    2023-10-06
    nginx java
  • 在CentOS服务器上搭建GitLab的方法
    CentOS GitLab搭建GitLab是开源的Git仓库管理系统,可以帮助团队协同开发、代码管理以及持续集成和部署等任务。本文将介绍在CentOS服务器上搭建GitLab的方法。准备工作在开始搭建GitLab之前,需要确保CentOS服...
    99+
    2023-10-22
  • 如何使用nodeJS搭建本地文件服务器
    这篇文章主要介绍了如何使用nodeJS搭建本地文件服务器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。搭建nodejs服务器步骤:1.安装n...
    99+
    2024-04-02
  • 教你在windows下搭建MQTT服务器的方法
    目录一、下载mosquitto二、配置mosquitto1. 安装路径打开命令行界面2. 设置user及password3. 配置文件检查4. 设置端口5. 订阅者6. 发布者7. ...
    99+
    2024-04-02
  • 云服务器搭建加速器:简单又高效的方法
    1. 了解加速器的作用和原理 在开始搭建云服务器加速器之前,我们首先需要了解加速器的作用和原理。加速器是一种网络优化工具,可以提高云服务器的网络连接速度和稳定性。它通过优化网络传输路径、减少数据包丢失和延迟等方式,提供更快速、更可靠的网络...
    99+
    2023-10-27
    高效 加速器 简单
  • 如何进行Nginx静态文件服务器搭建及autoindex模块解析
    这期内容当中小编将会给大家带来有关如何进行Nginx静态文件服务器搭建及autoindex模块解析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ngx_http_autoindex_modulengx_h...
    99+
    2023-06-28
  • 在本机搭建自己的ftp服务器--最简单的方法(详细教程)
    在本机搭建自己的ftp服务器–最简单的方法 FTP服务器可以在局域网中快速传输文件,是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义...
    99+
    2023-08-19
    服务器 网络 运维 网络协议
  • 共享阿里云服务器文件的简单方法
    在当今的数字化时代,文件共享已成为一种常见的工作和学习方式。特别是在远程工作和在线学习中,文件共享变得尤为重要。本文将详细介绍如何在阿里云服务器上共享文件。 一、创建文件夹 在阿里云服务器上创建文件夹是共享文件的第一步。在服务器的命令行界面...
    99+
    2023-10-29
    阿里 简单 服务器
  • 文件服务器搭建与使用的方法是什么
    文件服务器是一种用于存储、管理和共享文件的服务器,可以用于个人、企业或组织的文件管理。下面是文件服务器搭建和使用的方法:1. 选择适...
    99+
    2023-05-14
    文件服务器搭建 服务器
  • Linux文件服务器搭建的方法是什么
    搭建Linux文件服务器的步骤如下:1. 安装Linux操作系统(如Ubuntu、CentOS等)。2. 安装Samba服务,Sam...
    99+
    2023-06-07
    文件服务器 服务器
  • web文件服务器搭建的方法是什么
    搭建web文件服务器的方法有多种,以下是其中一种基于Apache服务器的方法:1. 安装Apache服务器:在服务器上安装Apach...
    99+
    2023-05-13
    web文件服务器 服务器
  • 搭建阿里云EMQTT服务器在Windows上的实践
    本文旨在介绍如何在Windows操作系统上搭建阿里云的EMQTT服务器。EMQTT(ErlangMQTT)是一种开放源代码的消息发布/订阅协议,适用于物联网、移动设备和Web应用程序。通过使用阿里云的EMQTT服务器,可以轻松地构建和管理消...
    99+
    2023-10-31
    阿里 服务器 EMQTT
  • windows搭建tftp服务器的方法是什么
    要在Windows上搭建TFTP服务器,可以按照以下步骤进行操作:1. 在控制面板中找到“程序和功能”,点击“打开或关闭Window...
    99+
    2023-06-12
    tftp服务器 服务器
  • 在容器中怎么使用nginx搭建上传下载的文件服务器
    这篇文章主要讲解了“在容器中怎么使用nginx搭建上传下载的文件服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在容器中怎么使用nginx搭建上传下载的文件服务器”吧!一、安装nginx...
    99+
    2023-06-30
  • 教你在容器中使用nginx搭建上传下载的文件服务器
    目录一、安装nginx容器二、配置nginx三、支持文件上传1. 配置nginx2. 添加upload.html3. 添加后面的处理服务四、获取上传进度1.修改配置2. 修改上传页面...
    99+
    2024-04-02
  • Windows Server 2019下FTP服务器搭建方法图文教程
    Windows Server 2019下搭建FTP服务器,供大家参考,具体内容如下 在服务器管理器中选择“添加角色和功能” 连续点击下一步,跳过开始之前和安...
    99+
    2022-11-13
    Windows Server 2019 FTP
  • 云服务器搭建邮件服务器的方法
    使用本地服务器搭建邮件服务器: 这种方法需要在本地安装邮件服务器软件,可以选择虚拟机的方式进行部署。在虚拟机中安装邮件服务器软件,可以通过控制台进行设置和管理。 使用公共云平台搭建邮件服务器: 使用公共云平台上的邮件服务器可以节省...
    99+
    2023-10-27
    邮件服务器 服务器 方法
  • 如何在Windows上搭建一个使用GIT的本地服务器
    在软件开发过程中,代码管理是必不可少的环节之一。GIT是一种分布式版本控制系统,已成为当今主流的代码管理工具之一。虽然有很多云端GIT仓库,但是本地搭建GIT服务器仍然是一个非常流行的做法。在这篇文章中,我们将讲解如何在Windows上搭建...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作