Node.js“需要”其他文件而不需要命名空间

2024-05-14

我正在将代码库从 100% 浏览器端切换为浏览器端和服务器端的混合。

我发现的问题是,要让我的代码使用 node.js 运行,我必须使用模块。为了将我的代码变成模块,需要对几乎所有代码进行巨大的重构。原因是在浏览器上,许多功能是跨文件使用的,而不用担心任何命名空间。

但目前,在 Node.js 中,我发现没有办法达到同样的效果,而且我找到的所有解决方案都不起作用。

举个我想要的例子,我希望能够做到这一点:

////////////
// file1.js
////////////

function someFunction(someArgs) {
    /* run some stuff, calculate some stuff */

    return something;
}

////////////
// file2.js
////////////

function someFunction2(someArgs) {
    /* run some code */

    let someValue = someFunction(someArgs);

    /* run some more code */
}

////////////
// file3.js
////////////

someFunction2(myArguments);

I have tried following solutions found here https://stackoverflow.com/questions/5797852/in-node-js-how-do-i-include-functions-from-my-other-files, but they have not helped me.

“马赛卢姆”的答案不符合我的需要。

"Udo G"的答案,指使用 eval 将其他文件包含在运行文件中会引发此错误:

console.log(isWhitelisted("test"));
            ^

ReferenceError: isWhitelisted is not defined
    at Object.<anonymous> (/Users/< snip >/server.js:45:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
    at node.js:999:3

尽管 Udo G 指出了这一点,因为我正在使用严格模式:

另请注意,这不适用于“use strict”;

“尼克·帕诺夫”的答案对我来说也不起作用,抛出了与 Udo G 的答案相同的错误。这也可能是因为使用严格。


有什么方法可以在不重构整个代码库以坚持使用模块的情况下实现这一目标?


尝试使用构建步骤来实现此目的。简单的文件连接会对您有所帮助。例如,看看https://github.com/contra/gulp-concat https://github.com/contra/gulp-concat

这是与 gulp 相关的文档 -https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js“需要”其他文件而不需要命名空间 的相关文章

  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • Number.IsNaN() 比 isNaN() 更糟糕吗

    Soooooo isNaNJavaScript 显然被破坏了 比如 isNaN isNaN isNaN true isNaN false isNaN 0 返回 false 当它们看起来都是 不是数字 在 ECMAScript 6 中 草案包
  • 使用 AWS CDK 为 lambda 指定自定义角色

    我意识到它很新 但我没有看到任何语言的任何示例 说明如何为使用 AWS CDK 创建的 lambda 指定角色 我正在尝试这样做 const cdk require aws cdk cdk const lambda require aws
  • 为什么 setTimeout 在 Chrome 中触发两次,而在 IE 或 Firefox 中则不然?

    有人能告诉我为什么 javascript 函数 生成新号码 在 Chrome 中触发两次 但在 IE 或 Firefox 中则不会 使用 Chrome 20 0 1132 57 IE9 和 Firefox 13
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 为 Node.js 客户端应用程序保留 Firebase 用户

    我正在使用 Firebase 构建 Node js 命令行界面 CLI 用于与后端进行身份验证 我想避免让用户每次运行命令时都输入密码 相反 我想实现一个 登录 流程 将凭证保留到文件系统 该凭证可用于后续的无密码身份验证 直到用户 注销
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • "message": "ENOENT: 没有这样的文件或目录,打开 'E:\\astrology\\utils\\uploads\\1600798534862qf.png'"

    正如标题所示 我得到error message ENOENT no such file or directory open E astrology utils uploads 1600798534862qf png 在我的项目中 即使在通过
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • 使用内联查询进行单元测试

    我知道有几个问题与我的类似 Dapper 单元测试 SQL 查询 https stackoverflow com questions 20461553 dapper unit testing sql queries 测试简洁的查询 http
  • 如何使用 php 将 base64 解码的图像保存在文件系统中?

    我通过向我的 Web 服务发出 POST 请求来获取 Base64 编码的 JPEG 字符串 我想解码它并将其保存在文件系统中 我如何使用 PHP 5 3 来实现这一点 我能够使用 base64 decode 函数成功解码数据 如何将此解码
  • 我的整个 Rails 应用程序仅从一个文件获取 css 为什么

    我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css 我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从p
  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • 使用 Node.JS,如何将 JSON 文件读入(服务器)内存?

    背景 我正在使用 Node js 进行一些实验 并且希望从文本文件或 js 文件 哪个更好 读取 JSON 对象到内存中 以便我可以从代码快速访问该对象 我意识到有像 Mongo Alfred 等这样的东西 但这不是我现在需要的 Quest
  • 如何从 m3u 字符串中检索变量=“值”对

    我有 m3u 文件 其中包含类似示例的行 EXTINF 0 ExtFilter Viva group title Variedades tvg logo logo Viva png tvg name Viva 我在 PHP 中运行此命令但没
  • 为神经网络打乱两个 numpy 数组

    我有两个 numpy 数组用于输入数据 X 和输出数据 y X np array 2 3 sample 1 x 16 4 dtype float sample 2 x y np array 1 0 sample 1 y 0 1 dtype
  • 粘表行

    我正在尝试实现一个像 iOS 那样的日历列表视图 基本上 我现在正在做的就是循环遍历我的事件数组 如果是新日期 则打印日期标题 否则打印日历事件 我想让日期标题行保持粘性 直到它们 滚动走 我怎样才能做到这一点 我看到很多关于粘性标题的示例
  • 如何更改文本字段颤动内部的值?

    我有一个TextEditingController如果用户单击按钮 它就会填写信息 我似乎不知道如何更改 a 中的文本Textfield or TextFormField 有解决办法吗 只需更改text财产 TextField contro
  • 元素数组中数组的 MongoDB 全文

    当元素数组中的数组包含应与我的搜索匹配的文本时 我无法检索文档 以下是两个示例文档 id foo name Thing1 data text X X name Thing2 data text X Y id foo
  • 返回一个dispatch_async获取的变量[重复]

    这个问题在这里已经有答案了 基本上 一个方法需要返回一个在dispatch async中获取的NSDictionary 这是我尝试过的 NSDictionary fetchNSDictionary dispatch queue t Queu
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 在 Ubuntu 16.04 上找不到 printf.c

    我最近切换到Ubuntu 16 04 我在用vscode作为 Ubuntu 上的 IDE 我配置了其他语言 但我无法做到这一点C C 我创建c cpp properties json launch json tasks json 当我开始编
  • 为什么在谈论线程和进程时,“不要同时格式化软盘”的评论很有趣?

    我正在阅读之间的区别线程和进程 https stackoverflow com questions 200469 what is the difference between a process and a thread并在第二个答案中发现
  • Java 中的 <-- 是什么? [复制]

    这个问题在这里已经有答案了 我遇到了下面的片段 它输出到4 3 2 1 我从来没有遇到过 lt 在爪哇 Is lt 使 var1 的值变为 var2 的运算符 public class Test public static void mai
  • 安装tensorflow的正确命令

    当尝试在 Anaconda 上安装 Tensorflow 时 我尝试了两种类型的命令 conda install tensorflow gpu工作得很好 然而 当尝试conda install c anaconda tensorflow g
  • PHP ASCII 表库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个事实上的标准库用于在 PHP 中创建 ASCII 表 我想要一些 PHP 代码 当传递数组或其
  • 无法在 Android Studio 中导出签名的 APK

    当我使用keytool list keystore path to keyfile jks并提供我的密码 我可以看到那里的条目 但是当我在尝试使用相同的密码生成签名的 APK 时使用相同的密码时 我收到错误 无法加载密钥库 密钥库被篡改 或
  • Node.js“需要”其他文件而不需要命名空间

    我正在将代码库从 100 浏览器端切换为浏览器端和服务器端的混合 我发现的问题是 要让我的代码使用 node js 运行 我必须使用模块 为了将我的代码变成模块 需要对几乎所有代码进行巨大的重构 原因是在浏览器上 许多功能是跨文件使用的 而