如何在 Node.js 中使用模板(把手或任何替代方案)而不使用框架(ex = express)?

2024-04-22

例如,我有这个 JSON 文档“foo.json”:

{
    "foo": [
        {
            "bar": "Hello World!"
        },
        {
            "bar": "The End"
        }
    ]
}

在 Node.js 中,我想使用模板(handlebars 或任何模板)从 JSON 文档生成字符串,例如:

<p>Hello World!</p><p>The End</p>

...然后将该字符串值分配给 Node.js 中的变量。最后,我会将更多值连接到变量并将最终变量值输出为 html 文档。

不使用像 Express 这样的框架可以做到这一点吗?


如果你想使用把手,只需获取 npm 模块:

npm install handlebars

然后在您的脚本中,您可以使用句柄基于迭代数组的简单模板来渲染输出foo并创建一个<p>对于每个项目,包含的文本bar财产:

var handlebars = require('handlebars');

// get your data into a variable
var fooJson = require('foo.json');

// set up your handlebars template
var source = '{{#each foo}}<p>{{this.bar}}</p>{{/each}}';

// compile the template
var template = handlebars.compile(source);

// call template as a function, passing in your data as the context
var outputString = template(fooJson);

如果您想使用 .hbs 模板文件而不是字符串source你可以使用fs读取文件的模块fs.readFile, call toString()返回的缓冲区上,并使用它来调用渲染函数。尝试这个:

var handlebars = require('handlebars');
var fs = require('fs');

// get your data into a variable
var fooJson = require('path/to/foo.json');

// read the file and use the callback to render
fs.readFile('path/to/source.hbs', function(err, data){
  if (!err) {
    // make the buffer into a string
    var source = data.toString();
    // call the render function
    renderToString(source, fooJson);
  } else {
    // handle file read error
  }
});

// this will be called after the file is read
function renderToString(source, data) {
  var template = handlebars.compile(source);
  var outputString = template(data);
  return outputString;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Node.js 中使用模板(把手或任何替代方案)而不使用框架(ex = express)? 的相关文章

随机推荐

  • MVC 与观察者模式

    我最近在 StackoverFlow 上问了一个关于 MVC 的问题 MVC设计模式 架构模式可以用于桌面应用程序开发吗 https stackoverflow com questions 305988 can the mvc design
  • Axios-一次发出多个请求(vue.js)

    如何使用 axios 和 vue 并行发出多个请求 由于 axios 可以被 React 和 Vue 使用 因此代码几乎相同 请务必阅读axios 文档 https github com axios axios 你可以从那里理解它 无论如何
  • 如何在 Xamarin.Forms 中设置不透明度动画

    我想知道如何对屏幕上可见元素的不透明度进行动画处理 例如 对于 Entry 我得到了这个 this Animate d gt Debug WriteLine anim d Username Opacity AnimationTime d A
  • 没有这样的方法错误:ImmutableList.copyOf()

    我正在使用 Guava 05 snapshot 和 Sun 的 JDK 1 6 执行此代码片段时 代码会崩溃 List
  • 在没有 UI 导航器控件的 uiviewcontroller 之间切换

    我想以编程方式在 2 个 UIViewController 类之间切换 而不需要任何额外的 UI 控制 例如向应用程序添加 UI 的 UITabBarController 我的 main 使用 addSubView 加载第一个视图控制器 v
  • Scala 的反射 API

    有谁知道 Scala 的全功能反射 API 的状态吗 我知道您可以使用 Java 的反射 API 来做简单的事情 但这不适用于 Scala 的语言功能 我找到了一个有趣的文章 http lamp epfl ch teaching proje
  • 相当于 Cocoa 中的 FileSystemWatcher (.NET)

    我正在 Cocoa 中开发一个应用程序 我想不断检查特定位置的文件内容是否已更改 例如FileSystemWatcher在 NET中 请任何人给我一个解决方案 请看一下FSEvents http developer apple com do
  • CLR 使用实体框架检测到无效程序

    我正在从 wordpress 数据库中检索数据 该数据库将主键定义为decimal我在项目中使用 x64 配置 我搜索了一下发现这就是问题所在 但我找不到解决方案 我需要做什么 下载才能使用decimal作为主键 Microsoft Con
  • 在 IntelliJ IDEA 中运行 Jest 测试

    我创建了一个 React 应用程序create react app版本 1 4 0 并在 IntelliJ 中打开生成的项目 现在我也尝试在 IntelliJ 中运行生成的测试 当我这样做时 我得到以下输出 usr bin node hom
  • Angular-Formly:隐藏/禁用服务字段

    我有一项服务 其中我尝试禁用角度形式字段 formField templateOptions disabled true 即使 templateOption 对象是正确的 该字段也不会被禁用 templateOptions type tex
  • Lambda 表达式中的 OrderBy 降序排列?

    我知道在正常的 Linq 语法中 orderby xxx descending很简单 但是如何在 Lambda 表达式中做到这一点呢 正如布兰农所说 这是OrderByDescending http msdn microsoft com e
  • Visual Studio 中的解决方案文件夹是什么?

    我有一个 Visual Studio 2008 解决方案 我想在解决方案中包含一个真实的文件夹 但不是在项目级别 而是在解决方案级别 我注意到您可以右键单击该解决方案并添加一个解决方案文件夹 但它显示为一些白色文件夹 我怀疑它到底应该是什么
  • Swift 中 CGImage 的 RGB 数据

    我尝试过培养阅读能力RGB 像素数据 https stackoverflow com questions 6073259 getting rgb pixel data from cgimage在斯威夫特 获取基本图像信息没有问题 但我认为指
  • 将系列列表传递给 SetSeries

    我将 DotNet Highcharts 与 Visual Studio 2010 结合使用 我创建了一个系列数组 List
  • {} while(0) 在宏中如何工作?

    尽管这个话题已经在本论坛和所有其他论坛上讨论过很多次 但我仍然心存疑虑 请帮忙 如何do while 0 Linux内核中的宏工作 例如 define preempt disable do while 0 它如何禁用抢占 define mi
  • 尝试使用 Razor 引擎解析模板时,程序集“mscorlib”中的“System.Security.Principal.WindowsImpersonationContext”错误

    我必须创建一个能够发送电子邮件的 Asp Net Web Api 我成功发送了电子邮件 但仅使用存储在本地变量中的简单模板 下一步是从外部文件渲染模板 如下所示 string filePath C Data EmailClient Emai
  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • 使用 RCurl 登录 mediawiki

    我如何使用 RCurl 或 Curl 我可以将其适应 R 包 登录到 mediawiki 我只想解析一个页面 但我需要登录 否则我无法访问它 Mediawiki API 有一个登录函数 它返回 cookie 和令牌 您必须保存并将两者发送回
  • mscordacwks.dll 和 mscorwks.dll 混淆

    mscordacwks dll 和 mscorwks dll 在 Net Framework 运行时 构建和调试过程中执行哪些不同的功能 有关于这个主题的推荐读物吗 我已经搜索了很长一段时间但失败了 提前致谢 乔治 mscorwks 是主要
  • 如何在 Node.js 中使用模板(把手或任何替代方案)而不使用框架(ex = express)?

    例如 我有这个 JSON 文档 foo json foo bar Hello World bar The End 在 Node js 中 我想使用模板 handlebars 或任何模板 从 JSON 文档生成字符串 例如 p Hello W