javascript - fs existsSync() 适用于 Localhost 但不适用于 Digital Ocean Droplet
问题描述
我目前正在开发一个在 Digital Ocean 液滴上运行的 Node 应用程序。该应用程序接受post
用户的请求(通过连接到网站的另一个应用程序),以上传文件。我通过 Node fs 扩展来做到这一点。请求处理程序中的代码post
读取
var fileNameOrginalIndexArray = fileNameOriginal.split("\\");
fileNameOriginalAttempt1 = fileNameOrginalIndexArray.join("/");// C:
fileNameOriginalAttempt2 =
"/mnt/" + fileNameOrginalIndexArray[0].charAt(0).toLowerCase() + "/"
+ fileNameOrginalIndexArray.slice(1, fileNameOrginalIndexArray.length).join("/");// /mnt/c
if(fs.existsSync(fileNameOriginalAttempt1)){
fs.createReadStream(fileNameOriginalAttempt1).pipe(streamwrite);
}
else if(fs.existsSync(fileNameOriginalAttempt2)){
fs.createReadStream(fileNameOriginalAttempt2).pipe(streamwrite);
}
else{
res.send("ROOM IMAGE POST ERROR");
}
它正在目录中寻找所请求的文件C:\
,以及/mnt/c/
. 现在,当我在 localhost 上运行应用程序时,整个检查以查看文件是否存在的操作非常可爱;但是当我通过我的 Digital Ocean droplet 运行应用程序时,它说文件不存在。
我怀疑这与它在本地计算机上运行而不是在服务器上运行时检查我的本地计算机有关;但坦率地说,我对为什么会发生这种情况一无所知。有人能告诉我为什么在本地主机上运行应用程序时使用 fs 找到我的文件,但在 Digital Ocean 液滴上运行应用程序时却没有?提前致谢!
解决方案
推荐阅读
- html - @media all and (device-aspect-ratio: 1.78) { }
- java - Java Stream 是否连接到数据库?
- javascript - 自定义机器人在 discord.js 中临时添加角色
- flutter - 将 File 与 ImagePicker Flutter 一起使用时出错
- ios - (在第 3 步中解决) CoreBluetooth:当我将 CBUUID 作为数组传递给 scanForPeripherals withServices 时,什么也没发生。(Xcode 12.5,斯威夫特 5)
- javascript - 无法自定义“复制到剪贴板”按钮
- javascript - 如何使 React Native Webview 自动高度
- javascript - 使用jQuery向下滚动并将滑块文本居中对齐时,如何使顶部栏在所有屏幕上保持粘性?
- time - chrome 开发工具缓存 Expires/Max-Age 中的时间格式是什么?
- java - 我的代码使用 Apache poi 3.12 版本运行,现在更改为 4.1.2 版本。如何在 CellUtil.setAlignment() 中设置 HSSFWorkbook 和 HSSFCell