【问题标题】:Render javascript file with inline javascript使用内联 javascript 渲染 javascript 文件
【发布时间】:2019-10-12 15:50:03
【问题描述】:

我有以下*.js 文件:

var text = `
This is a test ${Company.Name}.
`

module.exports = {
    text
};

我的主文件如下所示:

const Company = {}
Company.Name = "Apple"

基本上,我想“渲染”文本并用我的预定义变量填充它。

有什么建议在主文件中“加载”文本文件的最佳方式是什么?

感谢您的回复!

【问题讨论】:

  • 最好从*.js 文件中导出Company.Name
  • 鉴于 Company.Name 在您的 js 文件中是“无”,为什么不导出一个函数呢? (例如module.exports = Company => `This is a test ${Company.name})因为现在你展示的代码没有任何意义,模块应该是自包含的:它们需要的任何东西,你要么在模块中需要,它是在调用时指定的。没有“依靠神奇的全球价值观”。
  • @Mike'Pomax'Kamermans 您将如何以不同的方式构建代码?
  • @Anna.Klee:评论中提到了一个函数——如果你导出函数text: Company => `This is a test ${Company.name}`,而不是直接的文字text: `This is a test ${Company.name}`,,你可以从另一个文件调用函数并获取你的字符串想要回来。如果可能的话,这可能是完成它的最不尴尬的方式。 (也是 rahamanabdurar 的回答。)

标签: javascript node.js string object ecmascript-6


【解决方案1】:

在 *.js 文件中

var text = (Company)=> `This is a test ${Company.Name}.`

module.exports = {
    text
};

在 main.js 文件中

let { text }  = require('./hello');

const Company = {}
Company.Name = "Apple"

let try = text(Company);
console.log(try):

【讨论】:

    【解决方案2】:

    只需导入它:

    const { text } = require("./*");
    

    【讨论】:

    • 您的意思是require 而不是import?这行不通,因为 const Company 不是全局变量。
    • @Ry- 我不太明白你的意思,请你进一步解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多