在 Express / Connect 中配置上下文路径

2024-02-02

我有一个在 Expressconnect/Jade/Less 上使用 Coffeescript 构建的 Node.js 应用程序。

该应用程序将部署在几个不同的地方和不同的上下文路径上,例如

  • http://someurl.com/
  • http://someotherurl.com/andthenthispath/

我在实现这一目标时遇到了问题。我的目的是使用一个变量作为上下文路径,并在第二个部署位置中使用环境变量填充该变量。

contextPath = process.env.CONTEXT_PATH || ''

然后我可以像这样设置我的路线,

app.get contextPath + '/', anIndexFunction
app.get contextPath + '/bla', aBlaFunction

这开始看起来过于混乱,然后我还需要在任何其他将构建 url 的位置拉入这个变量。

我一直在寻找一个 Connect 中间件,能够以更好的方式处理这种情况,是否存在?或者有一个标准的方法来处理这个问题吗?


您可以使用 Express 来做到这一点

const config = require('./config')
const argv   = require('yargs').argv
const express = require('express')
const router = express.Router()

const app = express()
router
    .route('/another-path')
    .post((req, res) => {
        // Your code here
    }

const contextPath = argv.contextPath  || config.contextPath || "/"

app.use(contextPath, router)
app.listen(port, host, () => console.log(`Server started on ${host}:${port}${contextPath}`))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Express / Connect 中配置上下文路径 的相关文章

  • browserify 错误 /usr/bin/env: 节点: 没有这样的文件或目录

    我通过 apt get install 安装了 node js 和 npm 以及所有依赖项 然后安装了 browserify npm install browserify g 它完成了整个过程 看起来安装正确 但是当我尝试为此做一个简单的捆
  • Node.js:您什么时候知道异步任务集合何时完成?

    我想深入一个目录 并根据正则表达式检查我在其中看到的每个文件的名称 基本上是通用unix的一个版本find命令 仅用 Node js 编写 我不关心文件的顺序 但我确实想确保获得所有文件 我有以下代码 我认为 它接近我想要的 它需要一个 s
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 如何在浏览器同步中配置端口

    我有一个gulp任务运行于browser sync 默认情况下它运行在node js服务器的端口3000上 我想将默认端口更改为任何其他端口 例如3010 var gulp require gulp connect require gulp
  • 未处理的拒绝:发送后无法设置标头

    我正在 Dialogflow 中创建一个聊天机器人 当我尝试将数据添加到数据库时 它抛出了 未处理的拒绝 错误 这是我的index js文件 use strict const functions require firebase funct
  • 如何将数据从 PhoneGap 发送到 Express 应用程序?

    我正在尝试在phonegap 内发出ajax post 请求 然后在express 应用程序内接收该数据 这就是我的代码的样子 音位间隙 ajax type POST url http localhost 3000 test data te
  • windows下用nodejs抓包

    node js v0 8 0 XP WIN7 不是 Cygwin 谷歌并找到node pcap https github com mranney node pcap https github com mranney node pcap 但它
  • NPM:切勿为 npm 包安装嵌套的可选依赖项

    我正在编写一个包 A 我想将其发布到 NPM A 依赖于包 B 而包 B 又依赖于包 C 然后 C 有两个可选的本机依赖项 D 和 E 我明确知道我没有使用可选依赖项 D 和 E 并且永远不想当有人安装我的软件包时尝试安装它们 我知道你可以
  • 设置缩略图内容类型

    我需要设置Content Type对于缩略图 我已经尝试如下所示 但它不起作用 仍然 它存储为流 天青功能 索引 json var Jimp require jimp module exports context myBlob gt Rea
  • 使用节点护照进行两次不同的登录

    我对两个站点 前台站点和后台 有相同的应用程序 两个站点都需要不同的登录条件 因为后台需要将 is admin 值设置为 true 这是我的登录方法 module exports verifyCredentials function use
  • Axios GET 返回不可读的响应

    我有一个带有 axios 1 2 0 的简单 GET 的 Express 应用程序 const result AxiosResponse await axios get https jsonplaceholder typicode com
  • 如何从 JSON 创建 Mongoose 模式

    我是 mongodb nodejs 和 mongooseJS 的新手 最近 我一直在尝试为我的 JSON 创建猫鼬模式 endpoints a z poi location name a latitude 10 1075702 longit
  • 在 NodeJS 中运行 Conda 命令

    我无法使用以下命令运行 C onda 命令exec与我的 NodeJS 应用程序 var conda path miniconda3 bin conda var cmd conda path init bash conda path act
  • Mongoose 更新嵌入文档不起作用

    问候大家 我定义了一个深度嵌入的猫鼬模型 Person 其中包含一个字段 Contact Contact 有一个 Address 数组 用于这个人的工作 家庭 送货等地址 当我想要更新地址并使用模型的 保存 功能时 更改并未反映在数据库中
  • 带有node-gyp的node.js应用程序无法在azure网站上部署

    我已经建立了一个 Azure 网站 并且正在尝试使用依赖于 node gyp 的示例应用程序 我得到这个 emote gt email protected cdn cgi l email protection install C DWASF
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 调用 `app.close()` 时,Nest 找不到 Sequelize 元素

    我们有一个运行 Nest 8 0 8 的 Web 服务器 使用给定的模块设置 Module imports ConfigModule forRoot isGlobal true cache true validate load config
  • 有什么办法可以避免使用 React 的 SSR 中的“文本内容不匹配”警告?

    我已经用 webpack 和 HMR 设置了 SSR 环境 有一个静态呈现的标记 服务器传递给客户端和client js捆绑与ReactDOM hydrate 方法 如果我更改源代码 HMR 可以正常工作 但会在控制台中发出警告 指出客户端
  • Firebase 身份验证和实时应用程序数据库如何保护自身安全?

    从一般开发的角度来看 我很好奇如何保护在线资源的访问 我们使用以下 Firebase 配置参数初始化 Web 应用程序 apikey authdomain projectid databaseurl messagesenderid 服务器如

随机推荐

  • EL 和协变返回类型

    我有这些课程 public abstract class Unit public abstract UnitType getType public class Item extends Unit protected ItemType typ
  • C# 与非托管 C++ 互操作性的延续传奇

    经过一天的头撞墙之后 我恳求帮助 我有一个非托管 C 项目 它被编译为 DLL 我们就这样称呼它吧光热发电项目 它目前在非托管环境中运行 另外 我还创建了一个WPF项目 该项目将被称为WPF项目 该项目是一个简单且目前几乎是空的项目 它包含
  • 向 Angular 4 添加第三方资源

    一般来说 我更喜欢添加第三方资源 angular cli json styles bower components animate css animate css bower components chosen chosen css bow
  • Android 上的关键字激活语音识别

    是否可以在您自己的应用程序中使用 google now 这个很酷的语音激活功能 所以我想要的是用户不必通过按下按钮或其他东西来触发激活 像那样 我宁愿有一个由关键字激活的自动语音识别功能 例如 当 google now 打开时 您只需说 g
  • Android:在 ActionBarSherlock 库中 getSupportActionBar() 始终返回 null

    我正在尝试使用动作栏夏洛克 https github com JakeWharton ActionBarSherlock库来为我的 Android 应用程序中的选项卡提供向后兼容的 ActionBar 支持 因此我下载了最新版本 构建了演示
  • 无法在项目 inv-project 上执行目标 org.codehaus.mojo:rpm-maven-plugin:2.0.1:rpm (default-cli)

    我在创建 Maven 项目的 RPM 时收到以下错误 我能够成功打包 Jar 但 RPM 创建失败 Note 我正在 Windows 7 上尝试 WARNING operable program or batch file INFO INF
  • 在哪里存储要执行的 SQL 命令

    由于内联 mysql 查询 我们面临代码质量问题 自己编写的 mysql 查询确实会使代码变得混乱 并且还会增加代码库等 我们的代码充满了类似的东西 beautify ignore start jshint ignore start var
  • 使 Meteor 方法同步

    我一直在尝试使这个功能同步 我读过几篇关于异步的 Stack Overflow 帖子 但我无法理解如何使其同步 到目前为止 它是异步的 因此在进入回调函数之前它会返回未定义 我从客户端调用它 Meteor call screenName f
  • 从 docker 容器连接到 SQL Server 数据库

    我的机器上安装了 docker for windows 有一个针对 net core 1 0 0 的控制台应用程序尝试访问在不同虚拟机上运行的 SQL Server 数据库 我可以从我的计算机上 ping 运行 SQL Server 的虚拟
  • 实体框架多对多映射上的软删除

    我有一个多对多 EF 映射 类似于下面的示例 我使用 EF 代码优先方法 因此我的映射类继承 EntityTypeConfiguration this HasMany a gt a KPIs WithMany Map a gt a ToTa
  • 具有不完整类型目标 C 的变量

    我试图将枚举作为方法签名的一部分 但在 h 文件中出现了这个可怕的错误 Declaration of enum CacheFile will not be visible outside this function 我的 h 文件中有这个
  • Flutter 中垂直 ScrollView 内的水平 ListView

    我现在试图实现一个非常常见的行为 即在另一个可同时滚动的小部件中拥有一个水平列表 想象一下 IMDb 应用程序的主屏幕 所以我想要一个可以垂直滚动的小部件 上面只有很少的项目 在它的顶部 应该有一个水平的ListView 随后是一些名为mo
  • 在 LINQ 查询中将 DateTimeOffset 转换为 DateTime

    当我通过 linq 查询从该表中获取数据并使用时 我的表中有 DateTimeOffset 列 from c in this dbContext SomeTable where c Id someId select new SomeMode
  • 如何自定义 Eclipse 工具栏(Kepler 或一般工具栏)

    我尝试自定义 Eclipse Kepler JavaEE 中的工具栏已经有一段时间了 最终在给定透视图 例如 主 JavaEE 透视图 中按照我想要的方式配置工具栏后 当我切换到不同的透视图 例如 调试透视图 然后再切换回来时 它完全混乱了
  • 模式匹配不等式

    我想从不平等的实例中提取论据 以下不起作用 知道为什么以及如何解决它吗 Inequality 1 Less x Less 2 Inequality a c e gt a c e Inequality 1 Less x Less 2 Hold
  • JBoss AS 7:日志记录

    我对 JBoss AS7 和日志记录有点挣扎 尽管我的问题是一个非常普遍的问题 但我在网络上找不到任何相关内容 默认日志目前如下所示 11 57 29 950 INFO stdout http 0 0 0 0 8081 78 2484089
  • 在 Go 中安装 exp/html

    看起来 Go 还不支持 HTML Web 解析工具 包 尽管它已经通过以下方式提供了 XML 抓取encoding xml 那么我该如何安装exp htmlGo 中的包 据我所知 所有的答案 至少我在网上搜索了10分钟后偶然发现的 都没有返
  • Visual Studio 的评论重花

    是否有内置命令或工具可以在 Visual Studio 中重排 C 注释 有时 一段代码需要多行注释 经过大量编辑后 您必须在适当的位置手动插入换行符 以免它超出编辑器窗口的右边缘 我希望能够通过一个键命令来完成此操作 使用 Visual
  • 使用 ggplot2 在 R 中绘制箱线图

    我是 R 新手 一直在尝试制作箱线图 显示了我正在使用的部分数据 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 1 0 003719430 0 002975544 0 003049933 0 003421876 0 0034
  • 在 Express / Connect 中配置上下文路径

    我有一个在 Expressconnect Jade Less 上使用 Coffeescript 构建的 Node js 应用程序 该应用程序将部署在几个不同的地方和不同的上下文路径上 例如 http someurl com http som