当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Malagu Serverless First

渐进式应用开发框架
授权协议 MIT
开发语言 TypeScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 陆甫
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Malagu 是基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。

特征

  • 约定大于配置,零配置,开箱即用
  • TypeScript 版 Spring Boot
  • Serverless First
  • 平台不锁定
  • 支持前后端一体化,前端框架不锁定
  • 组件化,渐进式
  • 命令行工具插件化
  • 依赖注入
  • 面向切面编程(AOP)
  • 集成了流行的 ORM 框架,使用装饰器声明式事务管理
  • 支持 OIDC 认证
  • 支持 OAuth2 授权
  • 使用 rxjs 管理状态
  • 提供 REST 和 RPC 两种接口风格

Malagu 名字由来:在我的家乡,谐音“吗啦咕”是小石头的意思,小石头堆砌起来可以建成高楼大厦、道路桥梁,而 Malagu 组件编排可以实现千变万化的应用。

快速开始

# 安装命令行工具
npm install -g yarn
npm install -g @malagu/cli

# 初始化
malagu init project-name
cd project-name            # 进入项目根目录

# 运行
malagu serve

# 部署
malagu deploy

文档

依赖注入

// 类对象注入
@Component()
export class A {

}

@Component()
export class B {
    @Autowired()
    protected a: A;
}

// 配置属性注入
@Component()
export class C {
    @Value('foo') // 支持 EL 表达式语法,如 @Value('obj.xxx')、@Value('arr[1]') 等等
    protected foo: string;
}

数据库操作

import { Controller, Get, Param, Delete, Put, Post, Body } from '@malagu/mvc/lib/node';
import { Transactional, OrmContext } from '@malagu/typeorm/lib/node';
import { User } from './entity';
@Controller('users')
export class UserController {
    
    @Get()
    @Transactional({ readOnly: true })
    list(): Promise<User[]> {
        const repo = OrmContext.getRepository(User);
        return repo.find();
    }
    @Get(':id')
    @Transactional({ readOnly: true })
    get(@Param('id') id: number): Promise<User | undefined> {
        const repo = OrmContext.getRepository(User);
        return repo.findOne(id);
    }
    @Delete(':id')
    @Transactional()
    async remove(@Param('id') id: number): Promise<void> {
        const repo = OrmContext.getRepository(User);
        await repo.delete(id);
    }
    @Put()
    @Transactional()
    async modify(@Body() user: User): Promise<void> {
        const repo = OrmContext.getRepository(User);
        await repo.update(user.id, user);
    }
    @Post()
    @Transactional()
    create(@Body() user: User): Promise<User> {
        const repo = OrmContext.getRepository(User);
        return repo.save(user);
    }
}
     相关资料
    • 官网:https://pwa.baidu.com/ PWA 是什么 Progressive Web App, 简称 PWA,是提升 Web App 的体验的一种新方法,能给用户原生应用的体验。 PWA 能做到原生应用的体验不是靠特指某一项技术,而是经过应用一些新技术进行改进,在安全、性能和体验三个方面都有很大提升,PWA 本质上是 Web App,借助一些新技术也具备了 Native App 的一

    • 一个应用程序开发框架。作者实现了很多控件效果,方便其他开发者各取所需。所实现的效果包括:打分星星、响应点击动作、旋转按钮效果、根据文字多少改变大小的UILabel等等效果。 [Code4App.com]

    • 我正在将现有Web应用程序更改为渐进式Web应用程序。大部分都进行得很顺利,我现在做完了。然而,在开发过程中,我注意到一些奇怪的事情。 我的进步: 我创建了Serviceworker来缓存一些文件,一切正常。之后,我创建了清单,并尝试在Android设备上进行调试,以测试“添加到主屏幕”功能,如下所述。这也基本上很好。我能够触发安装并添加图标,没有错误。 问题是: 然而,当启动PWA时,没有启动屏

    • 移动应用开发框架选型 2016 移动开发模式 移动开发主要分为原生模式(Native App)开发,混合模式(Hybrid App)开发,Web App模式。 1.1 Web APP Web App 指采用Html5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用。 优点: 1) 开发成本低 2) 更新快 3) 更新无需通知用户,不需要

    • 我们强调渐进式的改善站点体验主要有下面两个原因: 降低站点改造的代价,逐步支持各项新技术,不要一蹴而就 新技术标准的支持度还不完全,新技术的标准还未完全确定 PWA 改造的成本考虑 PWA 涉及到从安全、性能和体验等方面的优化,想要一次性支持所有特性,代价很高,老板也不一定愿意投入大量人力来支持这项大工程。 所以,从改造的成本考虑,我们也建议采取渐进式的方式,可以考虑按照下面的步骤来改造: 第一步

    • 本文向大家介绍Node.js 服务器端应用开发框架 -- Hapi.js,包括了Node.js 服务器端应用开发框架 -- Hapi.js的使用技巧和注意事项,需要的朋友参考一下 Hapi.js 是一个用来构建基于 Node.js 的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他 Web 应用开发常用的功能。 示例代码: 附上github

    • 本文向大家介绍为什么Vue被称为“渐进框架”?相关面试题,主要包含被问及为什么Vue被称为“渐进框架”?时的应答技巧和注意事项,需要的朋友参考一下 为什么Vue被称为“渐进框架”?

    • 当渐进式web应用程序(带有service worker)显示通知时,通知抽屉中显示的通知具有我提供的图标,看起来很好。 有没有办法让PWA指定状态栏中显示的图标?