node静态资源服务器的搭建----访问本地文件夹(搭建可访问静态文件的服务器)

本文详细介绍了如何使用Node.js搭建一个静态资源服务器,允许通过浏览器访问本地文件夹和文件。首先,创建anydoor文件夹并初始化package.json。接着,创建服务器并设置root目录以访问文件。通过async/await和promise化改造代码,实现更流畅的文件读取。最后,通过HTML拼接实现点击文件名直接跳转的功能,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们的目标是实现一个可访问静态文件的服务器,即可以在浏览器访问文件夹和文件,通过点击来查看文件。

1.先创建一个文件夹anydoor,然后在该文件夹里npm init一个package.json文件,按如下图所示创建文件夹和文件(node_models,package-lock.json是安装生成,不用自己创建)。为了方便管理,我们把一些设置性和公共的参数放在defaultConfig.js里,方便后期的更改和管理,在app.js中创建一个服务器。

//app.js,(npm install chalk,chalk可以改变console打印的颜色)

const http = require('http');
const chalk = require('chalk');
const config = require('./config/defaultConfig.js');

var server = http.createServer(function(req,res){
	res.statusCode = 200;
	res.setHeader('Content-type','text/plain');
	res.end('Hello world');
});

server.listen(config.port,config.hostname,()=>{
	var addr = `http://${config.hostname}:${config.port}`;
	console.info(`listenning in:${chalk.green(addr)}`);	
})

 这样,一个最简单的http服务器就就搭好了,在src文件夹中运行node app.js,如下图所示

在浏览器输入http://127.0.0.1:9527,打开控制台就可以看到请求,可以看到我们设置的参数。

2.接下来,我们着手搭建一个静态资源服务器,可以通过在浏览器地址栏输入地址的方式,访问启动当前服务的文件夹列表和文件夹的内容。在defaultConfig.js中添加一个新的配置项,root,当前node启动的目录。需要注意的是,process.cwd()是当前执行node命令时候的文件夹地址(工作目录),__dirname,是被执行的js 文件的地址 (文件所在目录)。

//defaultConfig.js

module.exports = {
	root:process.cwd(),//process.cwd()是当前执行node命令时候的文件夹地址 ——工作目录,__dirname,是被执行的js 文件的地址 ——文件所在目录
	hostname:'127.0.0.1',
	port:9527
}

//app.js

const http = require('http');
const chalk = require('chalk');
const path = require('path');
const fs = require('fs');
const config = require('./config/defaultConfig.js');

var server = http.createServer(function(req,res){
	const filePath = path.join(config.root,req.url)
	console.info("path",`${chalk.green(filePath)}`)
	fs.stat(filePath,(err,stats)=>{//fs.stat(path,callback),读取文件的状态;
		if(err){//说明这个文件不存在
			console.log(err)
			res.statusCo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值