当前位置: 首页 > 面试题库 >

如何从一个文件中获取变量到node.js中的另一个文件

呼延骏俊
2023-03-14
问题内容

这是我的第一个文件:

var self=this;
var config ={
    'confvar':'configval'
};

我想要这个配置变量在另一个文件中,所以我在另一个文件中所做的是:

conf = require('./conf');
    url=conf.config.confvar;

但这给我一个错误。

TypeError: Cannot read property 'confvar' of undefined

请提出我该怎么办?


问题答案:

您需要的是module.exports

出口产品

在当前模块的所有实例之间共享并可以通过require()访问的对象。export与module.exports对象相同。有关更多信息,请参见src /
node.js。导出实际上不是全局的,而是每个模块的本地性。

例如,如果您想公开variableName使用价值"variableValue"sourceFile.js则可以这样设置整个出口:

module.exports = { variableName: "variableValue" };

或者,您可以使用以下方法设置单个值:

module.exports.variableName = "variableValue";

要在另一个文件中使用该值,您require(...)首先需要使用它(具有相对路径):

const sourceFile = require('./sourceFile');
console.log(sourceFile.variableName);

或者,您可以对其进行解构。

const { variableName } = require('./sourceFile');
//            current directory --^
// ../     would be one directory down
// ../../  is 2 directories down

如果你想出来的文件variableName,然后

./sourceFile.js:

const variableName = 'variableValue'
module.exports = variableName

./consumer.js:

const variableName = require('./sourceFile')

编辑(2020年):

从开始Node.js version 8.9.0,您还可以使用具有不同支持级别的ECMAScript模块。该文档

  • 对于Node v13.9.0及更高版本,默认情况下启用实验模块
  • 对于低于版本13.9.0的Node版本,请使用 --experimental-modules

当传递给节点作为初始输入或被ES模块代码中的import语句引用时,Node.js将把以下内容视为ES模块:

  • 以结尾的文件.mjs
  • .js在最近的父package.json文件包含"type"值为的顶级字段时结束的文件"module"
  • 带有标志的字符串作为参数通过STDIN 传递到--evalor --print或通过STDIN 传递给node --input- type=module

设置完成后,您可以使用importexport

使用上面的示例,您可以采用两种方法

./sourceFile.js:

// this is a named export of variableName
export const variableName = 'variableValue'
// alternatively, you could have exported it as a default. 
// For sake of explanation, I'm wrapping the variable in an object
// but it is not necessary. 
// you can actually omit declaring what variableName is here. 
// { variableName } is equivalent to { variableName: variableName } in this case. 
export default { variableName: variableName }

./consumer.js:

// there are three ways of importing. 
// If you need access to a non-default export, then 
// you use { nameOfExportedVariable } 
import { variableName } from './sourceFile'
console.log(variableName) // 'variableValue'

// Otherwise, you simply provide a local variable name 
// for what was exported as default.
import sourceFile from './sourceFile'
console.log(sourceFile.variableName) // 'variableValue'

./sourceFileWithoutDefault.js:

// The third way of importing is for situations where there
// isn't a default export but you want to warehouse everything
// under a single variable. Say you have:
export const a = 'A'
export const b = 'B'

./consumer2.js

// then you can import all exports under a single variable
// with the usage of * as:
import * as sourceFileWithoutDefault from './sourceFileWithoutDefault'

console.log(sourceFileWithoutDefault.a) // 'A'
console.log(sourceFileWithoutDefault.b) // 'B'

// you can use this approach even if there is a default export:
import * as sourceFile from './sourceFile'

// default exports are under the variable default:
console.log(sourceFile.default) // { variableName: 'variableValue' }

// as well as named exports:
console.log(sourceFile.variableName) // 'variableValue


 类似资料:
  • 问题内容: 所以我想知道当在多个php文件中使用变量名时,是否有可能从特定的php文件中获取变量。一个例子是这样的: page1.php有 page2.php有 footer.php应该有 好的,这个例子有点抽象,但是就我所能讲的那么短。我想你明白我的意思!这就是我追求的页脚!有什么解决办法吗? 问题答案: 您可以,但是最后一个include中的变量将覆盖第一个中的变量: myfile.php m

  • 如何将一个文本的值追加到另一个文本文件中的特定位置? One.txt Second.txt 需要将second.txt中的one.txt值放置在{}中提到的名称所在的位置。 输出:

  • 问题内容: 在一个文本文件中,我有150个字。我还有另一个文本文件,大约有100,000行。 如何检查属于第一个文件的每个单词是否在第二个文件中? 我曾考虑过使用,但找不到如何使用它来阅读原始文本中的每个单词。 有没有办法做到这一点?还是其他解决方案? 我尝试使用此shell脚本,但它几乎匹配每一行: 我发现的另一种方法是: 问题答案: 您可以使用: 否则匹配完整的单词: 更新: 根据评论:

  • 问题内容: 如何将变量从一个文件导入到另一个文件? 示例:具有变量以及如何将其传递给? 如何将 所有 变量从一个导入到另一个? 问题答案: 将导入file1中的所有对象和方法

  • 如何将变量从一个文件导入到另一个文件? 示例:具有变量和如何将它们传递到? 如何将所有变量从一个导入到另一个?

  • 我正在创建一个MATLAB GUI使用指南。GUI有单选按钮、弹出菜单、可编辑文本框和按钮。我很好与单选按钮和弹出菜单的工作。但是,我希望从可编辑文本框(用户输入)中获取值,并将其赋给变量。然后,我希望在用户按下按钮时从GUI调用的另一个M文件中使用值,以便进行必要的计算(用于计算的代码在M文件中)。 任何建议都会很棒! 提前感谢你的帮助。