问题标签 [module-export]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何将用于身份验证的中间件功能从主服务器模块传递到路由器文件
有点新,请多多包涵。尝试使用护照仅对网站中的特定路线进行身份验证。这些路线位于一个名为blog_a.js
. 我在主server.js
文件中创建了以下函数:
但是,我正在尝试将上述函数传递到blog_a.js
模块中,因此我可以将它们用作中间件来保护该模块中的路由。
我尝试module.exports = {checkAuthenticated, checkNotAuthenticated}
在主“server.js”文件的底部使用,然后使用let server = require('../server.js')
一行将这些函数导入到包含我要保护的路由的模块中。
但是,上面的server
变量返回为未定义,我尝试了几种排列/解构方法来尝试导入它。一切都无济于事,由于“未定义”对象,我不断收到路由失败 - Error: Route.get() requires a callback function but got a [object Undefined]
。
如何在server.js
文件中设置身份验证,然后传递其身份验证功能以用作单个路由文件中的中间件?
我查看了这个解决方案,但它没有清楚地解释如何从一个模块server.js
--到另一个模块--获取中间件功能blog_a.js
。
typescript - ES6 typescript 将所有导出的常量导入为数组
我正在尝试导出许多常量,以后可以将它们作为数组导入和映射。我不能将它们全部放在一个对象中并导出它们,因为我使用的是泛型(OptionInterface)并且我希望保留类型验证。
目前,我将每个对象导出为命名导出,然后将所有对象导出为数组。问题是另一个开发人员可能不知道他必须向导出的数组添加一个新元素。
一个例子:
如果我尝试删除导出的数组并只导入所有元素,例如:
然后像在doSomething中一样使用它,我得到一个错误:
任何想法如何实现将所有常量导出为数组但同时保持输入?
javascript - 从 next.config.js 导出 2 个插件 - withImages 和环境变量
在 next.js (next.config.js) 我试图导出 2 个插件:
withImages 和当前环境,我尝试了以下但它不起作用,
环境变量得到未定义
javascript - 导出时返回未定义的函数
我在 node.js 中创建了一个具有 2 个功能的模块 - takeInput 和 getEventEmitter。这两个都是出口的。但是当我需要它是其他文件时,takeInput 工作正常,但 getEventEmitter 原来是未定义的。
以下是代码:-
导出主 module.js 的模块
错误如下
请帮忙。
typescript - 在 Vuejs 项目中找不到导出的组件
我目前在从我的组件库包中导出自定义 Vue 组件时遇到问题。
假设ComponentLib
具有以下文件夹结构,其中调用了我要导出的自定义组件icon.vue
ComponetLib/src/components/icon.vue
ComponentLib/src/index.ts
构建后,在此dist
文件夹中,我可以看到正在导出的以下类型。
dist/types/index.d.ts
这是结构MainProject
profile.vue
通过导入自定义icon.vue
组件
但是当我编译时,我收到一条错误消息module not found
,它无法解析这个引用。
但是当我将相同的组件放在MainProject/src/components
文件夹中时,编译器似乎很高兴。我突然想到出口可能有问题。但我不确定我错过或做错了哪一部分。
javascript - ES 模块何时可以导入名为 export 的 CommonJS?
我有一个 ES 模块,它使用我创作的 CommonJS 模块的命名导出。
es.mjs
commonjs.cjs(好一个)
当我像这样在 Node.js 中运行 ES 模块时,一切都很好。
无论如何,如果 CommonJS 模块中的导出部分以某种看似无关的方式进行了更改,即通过添加一对括号,命名导出将停止工作。
commonjs.cjs(坏的一个)
当然,当我的 CommonJS 命名导出被另一个 CommonJS 模块导入时,括号没有任何区别。
为什么会这样?
当我写一个 CommonJS 模块来确保命名的导出可以被 ES 模块导入时,我应该怎么做?
node.js - 带默认参数的模块导出
我正在尝试在 Node.js 中导出一个包含一些功能的模块。其中一个函数具有可选参数,其中包括默认值。
这些功能在未导出时起作用。移入module.exports
时,出现以下错误:
我知道参数可以在函数的代码中进行默认设置。不过,括号中的默认参数是否不起作用module.exports
?任何帮助修复它?谢谢。
javascript - 从一个 GET 请求中导出输入查询并在单独的请求中使用它们
我试图在我RESTful API
的查询中使用用户的输入来处理一个GET
请求,并使用该数据随机化一个数字并将该信息用于应用程序的其余部分。任何有关存储值并在整个应用程序的不同块上使用它们的最佳解决方案的指导都值得赞赏。部分代码示例如下:
例如,我正在尝试在 /guess 请求中使用 /Start 请求中的 Number 值!
javascript - 在 ES6 中使用 module.exports 导出多个函数
我正在构建一个 node.js 应用程序,我试图将我所有的 mongodb 逻辑放在一个单独的文件中。此时这个文件只有一个初始化mongodb连接的功能。我想使用module.exports
.
我的 mongo 文件如下所示:
我想在 index.ts 中使用这个 run 函数,并试图将它作为 ES6 模块导入,但我无法让它与上面的代码一起工作。
我如何导入:
索引.ts:
试图调用我的运行方法:
这会引发以下错误:' property run does not exist
'
现在我通过在我的运行声明之前添加一个额外的导出找到了解决这个问题的方法:
我不明白为什么我必须这样做,因为我已经在里面导出了这个函数module.exports
,我是在我的索引文件中导入错误还是有更好的方法来做到这一点?
node.js - 节点模块导出,访问不存在的属性错误,Jasmine
我正在使用客户的遗留代码,它是一个用于 Jasmine 测试的 node.js 项目。我的问题是,当我运行测试时,被调用的函数(在不同的文件中)找不到/查看使用导入文件的特定方法require
例子:
文件1.js
文件2.js
通过 IDE (VSCode),所有路径都是完整的,并且可以跟随“转到定义”。另外作为测试,我将登录功能的内容放入 file1.js 的描述块中,更新依赖关系,一切正常。但是我的老板和客户希望保持目前的结构。
当我按此处所示运行时,我收到以下警告:
代码运行但出现“无法读取未定义的属性”错误createUser
和USER_ROLE
。
我知道警告提到了循环依赖,但据我所知,没有,即只有 1->2->Api-> 等。
当从 file1.js 调用 file2.js 中的函数时,似乎 file2.js 中的 require 没有发生。
在没有更多高级支持的情况下,我相当初级/缺乏经验,因此我在这里伸出援手,这可能是一个相当简单的问题。
项目正在运行node version 14.17.0
Api.js 文件更像是一个库文件,它“链接”到在这种情况下包含的其他文件createUser
和USER_ROLE
.
[因为这是遗留的客户端代码,它在过去的某个时候工作过,我认为这可能与 Jasmine 或 Node JS 版本有关?]
节点警告/错误的更多详细信息: