【无标题】

Node 插件不正当使用造成的路径问题

前言:真的快被整吐了,上手node后模块导入有自己的路径规则,开启服务的相对路径又有自己的规则。不知道你们有没有困惑,我已经升华了。在被折磨了一下午后,终于大彻大悟了,记录!

用不该用的插件,多走弯路不吃亏

Code Runner

就是这个破插件,让我歇斯底里,痛苦万分,焦灼万分…

优点
  • 可以直接右键运行项目,适合单个js文件运行
问题
  • 搭建http服务器,需要运行多个js文件,其中涉及多个目录的操作。它会造成一直一直一直找不到路径的错误, 还把锅甩给multiparty。

看图

原因

run code插件执行a.js文件, 会创建临时的服务器,将这个文件作为根目录, 访问其它的资源就会找不到。相当于打开了一个房间,房间里只有a.js , 在静态目录下和a.js同级的资源就找不到。

nodejs下如何使用相对路径

前言: 相对路径可以分为静态相对路径动态相对路径

  • 静态相对路径:根据文件的相对位置确定, 比如nodejs模块导入
  • 动态相对路径:根据运行文件的服务路径来决定的 ,比如使用multiparty库设置缓存路径

还是有点不太明白呀~ 上图

在这里插入图片描述

静态路径???
fs.js中
const {utils} = require('./module/utils.js') 
// 在fs.js导入自定义的工具模块(文件)
如何查找? --->  静态查找!

// fs.js的同级目录下的module文件夹下的utils.js文件
动态路径???
在file_upload.js中,开启服务器
// 使用multiparty 库,在后端接收文件,需要指定文件的缓存目录。
const  multiparty = require('multiparty')
http.createServer((req, res) =>{
	const form = new multiparty.Form({"uploadDir":  "./router/dataRouter.js"}) 
	...... 
// 这里的路径怎么确定? ------> 动态相对路径 额
 在找到运行服务的根目录server,查找路径等同于server/router/dataRouter.js   
})

两者的区别搞清楚了吧~

总结
  1. 动态相对路径总是优先在服务的根目录下查找,如果把地址作为变量,参数用的,就是动态相对路径。
  2. 静态相对路径就是所见即所得的路径,不绕弯;比如模块导入就是静态的相对路径

nodejs中执行node命令,将执行文件所在的目录作为根目录(服务目录)

相对路径是根据运行文件的服务路径(根路径下)来决定的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值