npm 包 @conga/framework-view 使用教程

简介

@conga/framework-view 是一个用于构建 Node.js Web 应用的 npm 包,它提供了一系列的工具和 API 来帮助开发者构建高效、易于维护和灵活的 Web 应用,适用于中小型 Web 应用的开发。

本文将介绍其基本用法和一些高级特性。

安装和初始化

安装该包很简单,只要在终端输入以下命令即可:

--- ------- --------------------- ------

安装完成后,在你的项目根目录下新建一个配置文件 conga.js

-------------- - -

    -------- -
        ------------ -
            
            ----- ----------
            --------- -
                ------------------------
                -- ---- --
            --
            
            ------- -
                -
                    ----- -----------
                    -------- ----
                    --------- -
                        ------- -
                            ----------- -------------------------
                        -
                    -
                -
                -- ---- --
            -
        -
    -
-

这里以 'AppBundle' 为例表示你的应用所对应的 Bundle,后续所有涉及该应用的内容都在该 Bundle 下进行。

渲染 Templates

@conga/framework-view 的核心用途之一是用来为应用渲染并返回 templates。 它支持多种 template engine,包括:ejs, pug, twig, handlebars等。

要使用 @conga/framework-view 渲染 template,首先需要创建一个 template file。假设我们在 AppBundle 下的 Resources/views 目录下新建一个名为 index.ejs 的文件:

--------- -----
----- ----------
------
    ----- ----------------
    ---------- ----- ----------
-------
------
    --------- --- ---- --------
-------
-------

接下来,我们需要在 AppBundle 下的 Controller 中渲染该 template,并返回给 Client。

-- -----------------------------------------

----- ------------------ - ----------------------------------------------------------

----- ----------------- ------- ------------------ -

    ---------- ---- -
        --- ---- - -
            ------ ----------
            ----- ------
        --
        ----------------------------------- ------
    -
-

-------------- - ------------------

这里我们使用了 res.render('AppBundle:index:index', data) 来渲染一个 AppBundle 下的 index.ejs 模板,同时将数据通过 data 变量传递到前端以供使用。

提供缓存服务

为了更好的性能,多数的应用会开启缓存机制。@conga/framework-view 提供了一个缓存服务来帮助我们更好的管理缓存。缓存使用的是 Node.js 存储系统,因此在使用前需要先配置好存储系统,然后初始化好 @conga/framework-cache 模块。

扩展数据缓存服务功能需要做如下操作:

步骤 1

为 AppBundle 配置一个数据缓存服务,可以在 conga.js 中配置:

-
    -------- -
        ------------ -
            ----- ----------
            
            --------- -
                -
                    ------ -------------------------------
                    ---------- -
                        - ----- ---------- --- ------------- --
                        - -------- -- -
                    -
                --
                -- ---- --
            --
                  
            -- -------------- --
        -
    -
-

在上面的代码片段中,我提供了一些注释来解释一些重要的点:

  • 首先,我为 AppBundle 配置了一个缓存服务,类型是 web-app

  • 然后,我将 @conga/framework-cache 模块的 cache 服务作为 services 配置项中的一项。

  • arguments 中,我定义了 @conga/framework-cache 模块的 cache 服务使用 Redis 作为存储系统,并且设置默认过期时间为 60 秒。

步骤 2

使用缓存服务,它提供了 setgethasremoveflush 这几个方法,可以用来在控制器中管理缓存。

如下是一个示例,在 AppBundle 下的控制器中,使用缓存服务对数据进行缓存。

-- -----------------------------------------
----- ------------------ - ----------------------------------------------------------

----- ----------------- ------- ------------------ -
    ---------- ---- -
        --- ----- - ----------------------------------

        --- --- - --------
        --- ----- - ----------

        -- ---------------- -
            ----- - ---------------
        - ---- -
            -- ---------- --
            ----- - -----------

            -------------- -------
        -

        ----------------
    -  
-

-------------- - ------------------

这里我使用了 res.send(value) 来将数据返回给客户端。 在上面的代码片段中,我通过 cache.has(key) 来判断当前 key 是否存在于缓存中,如果存在的话就通过 cache.get(key) 来获取缓存数据,否则生成一个新的数据并缓存在 Redis 中。

结论

@conga/framework-view 为 Node.js Web 应用提供了良好的结构和 API,它支持多种模板引擎、缓存机制,并且能够帮助开发人员搭建高效、易于维护和灵活的 Web 应用。无论你是新手还是资深开发者,都可以从该文档中获得帮助和指导,加速你的 Node.js Web 开发速度。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/110455


猜你喜欢

  • npm 包 555-js-sdk 使用教程

    什么是 555-js-sdk? 555-js-sdk 是一款 JavaScript 库,提供了一系列用于 555 消息平台的 API。 它能够让你快速、轻松的构建你的 555 消息应用程序。

    5 年前
  • npm 包 colabbeerfirstdemo 使用教程

    在前端开发中,npm 是我们经常使用的包管理工具,通过 npm 能够快速搭建项目所需的开发环境。而 colabbeerfirstdemo 包是一款常用的 npm 包,用于在前端开发中实现协作和团队合作...

    5 年前
  • npm 包 angular2-useful-swiper 使用教程

    介绍 angular2-useful-swiper 是一个用于 Angular2+ 的轻量级、易用的Swiper 轮播图组件库。它可以帮助开发者快速实现轮播图功能的需求。

    5 年前
  • npm 包 @union/ts-components 使用教程

    简介 在前端开发中,组件化是一种非常重要的编程思想。它将复杂的系统拆分为相互独立的部分,使得开发者只需要关注自己负责的组件,从而提高了代码的可读性和可维护性。 @union/ts-components...

    5 年前
  • npm 包 @union/core 使用教程

    概述 在前端开发中,使用各种 npm 包已成为日常。@union/core 是一个非常实用的 npm 包,它提供了诸多前端开发所需的 API,包括但不限于:DOM 操作、事件驱动、异步处理、状态管理、...

    5 年前
  • npm 包 @crestron/ch5-crcomlib 使用教程

    在前端开发中,我们经常需要对商用设备进行控制和管理。这时,@crestron/ch5-crcomlib 这个 npm 包就派上用场了。该包使用简便,提供了一系列对商用设备的控制和管理方法,支持各种类型...

    5 年前
  • npm 包 @clxx/lazyimage 使用教程

    在现代化的网站应用中,图片已经扮演了非常重要的角色。但是,过多的图片加载会导致网站的性能问题。这时候,懒加载(lazy loading)技术就应运而生。@clxx/lazyimage 是一个 npm ...

    5 年前
  • npm 包 @class101/ui 使用教程

    介绍 @class101/ui 是一个基于 React 的 UI 组件库,该组件库提供了一系列可重用的 React 组件,可以方便地构建符合设计规范的 Web 应用程序。

    5 年前
  • npm 包 @prabhjot.s/stencil-bs-ui-lib 使用教程

    介绍 @prabhjot.s/stencil-bs-ui-lib 是一个基于 Stencil 开发的 UI 组件库,它提供了一系列常用的 UI 组件,如按钮、表单、弹窗等,且支持 BootStrap ...

    5 年前
  • npm 包 prabhjot.s 使用教程

    介绍 prabhjot.s 是一个 npm 包,它提供了一系列有用的前端工具,包括基础的 JavaScript 工具函数、CSS 样式表库、React 组件等。在本篇文章中,我们将详细介绍如何使用 p...

    5 年前
  • npm 包 @ui-guys/stencil-bs-ui-lib 使用教程

    什么是 @ui-guys/stencil-bs-ui-lib? @ui-guys/stencil-bs-ui-lib 是一个基于 Web Components 和 Stencil 构建的开源 UI 库...

    5 年前
  • npm 包 stencil-bs-ui-lib 使用教程

    Stencil-bs-ui-lib 是基于 Stencil.js 开发的一套 UI 组件库,采用了 Bootstrap 4 的样式,并具有一定的可定制化。在前端开发中,使用 Stencil-bs-ui...

    5 年前
  • npm 包 stencil-bs-lib 使用教程

    前言 Stencil-bs-lib 是一个基于 Stencil.js 和 Bootstrap 的 UI 库,它包含了一些常用的 UI 组件,比如按钮、表单和表格等等。

    5 年前
  • npm 包 stenciljs-virtual-scroll 使用教程

    在前端开发过程中,实现无限滚动是一项常见的功能需求。StencilJS 是一种 Web 组件编译器,它可以帮助开发者创建易于重用的高性能组件。StencilJS 开发团队为此提供了一种名为 stenc...

    5 年前
  • npm 包 @deckdeckgo/deck-utils 使用教程

    在 Web 前端开发中,创建演示文稿通常需要使用一个幻灯片库。而 @deckdeckgo/deck-utils 是一个基于 Web Components 构建的 JavaScript 库,它可以帮助我...

    5 年前
  • npm 包 @deckdeckgo/core 使用教程

    简介 @deckdeckgo/core 是一款基于 Web Components 实现的幻灯片生成器,它使用了现代的前端技术来构建自定义的演示文稿。除了自定义外,@deckdeckgo/core 还支...

    5 年前
  • npm 包 @cliqz/adblocker-puppeteer 使用教程

    简介 @cliqz/adblocker-puppeteer 是一款用于 Puppeteer 框架的广告拦截 npm 包。该包可以在 Puppeteer 中自动加载广告拦截器并阻止广告的联网请求,从而提...

    5 年前
  • NPM包 @cliqz/adblocker使用教程

    在网站开发中,广告拦截器是一个很常见的需求,它可以帮助用户过滤掉一些不必要的广告信息,提高用户的浏览体验。而 @cliqz/adblocker 是一个非常优秀的 npm 包,它可以为我们提供强大的广告...

    5 年前
  • npm 包 @carbonic/dropdown 使用教程

    简介 @carbonic/dropdown 是一个基于 Carbon Design System 的下拉菜单组件。它实现了一系列丰富的功能,包括通过键盘操作和鼠标操作进行导航、搜索和过滤,同时还提供了...

    5 年前
  • npm 包 @carbonic/button 使用教程

    在前端开发中,组件是非常常见的一个概念,它是由多个具有相似功能的模块组合而成的。可以说,组件是前端开发中的基础。而在众多的组件中,按钮组件是最为基础和常见的一个。本文介绍的是一个强大的按钮组件:@ca...

    5 年前

相关推荐

    暂无文章