在 Node.JS 中引用相对于应用程序根目录的文件的正确方法

2024-01-16

我有一个在 AWS EC2 的 Linux 上运行的 Node.JS 应用程序,它使用 fs 模块读取 HTML 模板文件。这是应用程序的当前结构:

/server.js
/templates/my-template.html
/services/template-reading-service.js

HTML 模板将始终位于该位置,但是,模板读取服务可能会移动到不同的位置(更深的子目录等)。在模板读取服务中,我使用 fs.readFileSync() 加载文件,像这样:

var templateContent = fs.readFileSync('./templates/my-template.html', 'utf8');

这会引发以下错误:

Error: ENOENT, no such file or directory './templates/my-template.html'

我假设这是因为路径“./”解析为“/services/”目录而不是应用程序根目录。我还尝试将路径更改为“../templates/my-template.html”并且有效,但它似乎很脆弱,因为我想这只是相对于“上一个目录”进行解析。如果我将模板读取服务移动到更深的子目录,该路径将会中断。

那么,引用相对于应用程序根目录的文件的正确方法是什么?


Try

var templateContent = fs.readFileSync(path.join(__dirname, '../templates') + '/my-template.html', 'utf8');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Node.JS 中引用相对于应用程序根目录的文件的正确方法 的相关文章

  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • 如何使用 Passport /Facebook 策略/验证 Supertest 请求?

    我使用 Passport js 进行身份验证 Facebook 策略 并使用 Mocha 和 Supertest 进行测试 如何使用 Supertest for Facebook 策略创建会话并发出经过身份验证的请求 这是用户未登录时的示例
  • 如何使用文档客户端更新 dynamodb 中的嵌套列表数据

    我有一个 dynamoDB 表 其中有一个包含 UserId 和列表列表的项目 它看起来像这样 Item UserId abc123 Lists id 1 title My favorite movies topMovies id 1 ti
  • 为 Promise 编写循环的正确方法。

    如何正确构造循环以确保满足以下条件承诺电话和被束缚的记录器 log res 通过迭代同步运行 蓝鸟 db getUser email then function res logger log res this is a promise 我尝
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • crypto createHMAC 输出根据 Nodejs 版本而有所不同

    我在升级节点版本时遇到加密模块问题 创建的HMAC取决于节点的版本 您将在下面找到重现该问题的代码片段 如果我将密钥编码为 BASE64 或任何 HMAC 不依赖于 node js 版本 如果我将其编码为二进制 则当我更改 Node js
  • Mongodb 以不区分大小写的方式排序

    我在 Nodejs express 中以 mongodb 作为数据库的一个项目中非常努力地构建 当我使用 sort 获取所有数据时 它以错误的方式返回数据 那么有没有办法按照我的预期得到正确的格式 如下所示 如果我们在数据库中有三个记录 i
  • Firebase CLI 部署错误:“现在在 Firebase CLI 中禁用部署到 Node.js 10 以下的运行时。”

    我有一个使用 Cloud Functions for Firebase 的项目 在将 Firebase CLI 更新到版本 9 0 0 后 我收到一条错误消息 错误 函数目录中的 package json 有一个引擎字段 不受支持 有效的选
  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一
  • 如果 Grunt 任务的子任务之一失败,如何使其失败?

    我在 grunt 中有一个构建任务 如下所示 grunt registerTask build jshint uglify 问题是 即使 jshint 任务失败 uglify 任务也会运行 如果它的子任务之一失败 如何使 build 任务终
  • 处理从nodejs到mongo db的连接丢失

    当nodejs和mongodb服务器之间的连接丢失时 我试图得到 连接丢失 或类似的信息 我使用本机驱动程序并具有以下代码 var mongo require mongodb var server new mongo Server host
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 警告:请求的映像平台 (linux/amd64) 与检测到的主机平台 (linux/arm64/v8) 不匹配

    警告 请求的映像平台 linux amd64 与检测到的主机平台 linux arm64 v8 不匹配 并且未请求特定平台 docker 来自守护程序的错误响应 无法选择具有功能的设备驱动程序 gpu 我在 mac 上尝试运行此命令时遇到此
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 根据 MVC,哪种项目结构是正确的? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到诸如flask通常有一个名为views容纳 app route def index return render template ind
  • 在需要时初始化模块

    我有一个模块 里面有一些初始化代码 加载模块时应执行 init 目前我正在这样做 in the module exports init function config do it in main var mod require myModu
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 如何在网络服务器中的端口 80 而不是端口 5000 上运行“部署”。

    我正在使用 deployd 运行一个网站 并且在将在端口 5000 上运行的应用程序更改为端口 80 时遇到问题 我想要做的是不要使用 mydomain com 5000 而只想使用 mydomain com 5000 com 谢谢 根据内

随机推荐

  • Chrome 不支持 getUserMedia()

    我正在尝试使用 getUserMedia 使用我自己的网站 使用我自己的 IP 地址运行 来访问我的网络摄像头 它工作正常 直到我再次尝试我的网站 我尝试过其他演示站点 给出的错误是 getUserMedia 不受支持 Chrome版本v4
  • Kafka以相反的顺序消费消息

    我使用Kafka 0 10 我有一个主题logs我的物联网设备将日志发布到其中 我的消息的关键是device id 所以同一设备的所有日志都在同一个分区 我有一个 API devices id tail logs需要显示呼叫时某台设备的最后
  • 在 javascript postmessage 上到本地磁盘上的父级 HTML iframe

    我正在开发一个项目 涉及在 iframe 中托管网页 而托管父 iframe 位于本地磁盘上的 HTML 文件中 例如在 c 而内部托管 iframe 位于某些服务器上 两个网页需要互相发送消息 父 iframe 在本地磁盘上 向内部框架发
  • Log.e 不打印 UnknownHostException 的堆栈跟踪

    Calling Log e TAG some message e where e is an UnknownHostException 不会在 logcat 上打印堆栈跟踪 自2011年5月20日起 Log类 这样UnknownHostEx
  • 如何在ggplot2中通过点绘制45度线

    我有一个对数刻度的散点图 其中垂直和水平参考线穿过 1 1 下面的虚线 我想添加与虚线参考线成 45 度角的额外参考线 以便它们恰好平分虚线参考线创建的四个 部分 例如 下面我刚刚通过眼睛添加的较细实线 我怎样才能用 ggplot 做到这一
  • 使用任何 Android 设计支持库元素时出错

    从设计支持库中扩充任何内容时出错 xml
  • 如何从 Ruby on Rails 解析 json 数据或(json 代码)

    我有一个 Ruby on Rails 源代码 现在我想解析数据并发送数据 在我的代码中 它将从用户获取名称并显示它 如何解析 ROR 中的数据 这是我的controller rb代码 def index hotels Hotel all r
  • shell 文本编辑器如何工作?

    我对编程相当陌生 但我想知道 shell 文本编辑器 如 vim emacs nano 等 如何能够控制命令行窗口 我主要是一名 Windows 程序员 所以也许 nix 上的情况有所不同 据我所知 只能将文本打印到控制台并要求输入 文本编
  • 如何扫描 pandas 数据帧中所有大于某值的值并返回与该值对应的行号和列号?

    我有一个问题 我有如下所示的巨大数据集 相关系数矩阵 A B C D E A 1 0 413454352 0 615350574 0 479720098 0 34261232 B 0 413454352 1 0 568124328 0 31
  • 提交-拉-合并-推还是拉-合并-提交-推?

    我们几周前开始使用 Mercurial 大多数开发人员都遵循以下工作流程 致力于某项功能 commit m 致力于功能 ABC pull u If branch merge 提交 m 合并 push 今天 我们的一位开发人员建议我们这样做
  • Keras ImageDataGenerator 流程方法中的 save_to_dir 遇到问题

    我想保存 ImageDataGenerator 正在创建的增强图像 以便以后使用它们 当我执行以下代码时 它运行正常 但我希望保存的图像没有显示在我尝试保存它们的目录中 gen image ImageDataGenerator rotati
  • Future 任务完成后 Java 进程没有退出

    这是我使用 Future 的代码片段 import java util concurrent import java util public class FutureDemo public FutureDemo Future Executo
  • 更改或删除 App Store 中的开发者名称

    我已经为我的客户创建了一个应用程序 我们已经用我的帐户发布了该应用程序 现在 他们想将开发商名称更改为他们公司的名称 有没有办法更改开发商名称 我可以将我的应用程序移至他们的企业帐户 以便开发者名称更改为他们的企业名称吗 是的 自 WWDC
  • 阅读 Fetch Promise 的正文

    我有以下用于上传到 Google Cloud 存储的快速端点 它工作得很好 来自 google api 的响应给了我一个唯一的文件名 我想将其传回我的前端 app post upload req res gt var form new fo
  • Spring Boot 与 POM 打包聚合器

    是否可以使用 Spring Boots Maven 插件命令spring boot run当项目的父POM因其子项目而使用打包模式POM时 我有一个多模块 Maven 项目 其中有一个 主 POM 它又是 Spring Boot 父模块的子
  • iPhone内存警告级别=2

    我有一个应用程序 可以将大量视图堆叠在一起 在某些时候 我收到内存警告级别 2 这是预期的 问题是 当我运行 Instruments 时 我没有任何内存泄漏 并且该应用程序占用了大约 9 10MB 的空间 这不是that我会说很多吗 问题是
  • 如何根据属性查找两个数组列表之间的差异?

    我有两个数组列表 每个都有 Employee 类型的对象列表 Employee 类如下所示 public class Employee Employee String firstname String lastname String emp
  • 防止 Thread.CurrentPrincipal 跨应用程序域传播

    有人可以阻止当前线程的 IPrincipal 在应用程序域边界上传播吗 我无法控制分配给线程的 IPrincipal 但我可以控制创建应用程序域 我想要这样做的原因是为了防止在主要对象类型程序集在其他域中不可用时发生序列化错误 Edit E
  • 如何为 1x1 Android 小部件创建清晰的背景图像?

    我正在创建一个 1x1 小部件 无论我尝试什么 我都无法让背景图像看起来漂亮且清晰 我已经阅读了几乎所有我能找到的资源 但我仍然无法获胜 我正在为 HTC Desire Nexus 1 进行设计 希望有人告诉我在 Photoshop 中创建
  • 在 Node.JS 中引用相对于应用程序根目录的文件的正确方法

    我有一个在 AWS EC2 的 Linux 上运行的 Node JS 应用程序 它使用 fs 模块读取 HTML 模板文件 这是应用程序的当前结构 server js templates my template html services