25 Star 91 Fork 14

腾讯云云开发/cloudbase-framework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.github
community
doc
packages
cloudbase-next-builder
cloudbase-node-builder
cloudbase-nuxt-builder
cloudbase-static-builder
cloudbase-static-deployer
cloudbaserc-json-schema
framework-core
framework-plugin-container
framework-plugin-dart
framework-plugin-database
framework-plugin-deno
framework-plugin-function
framework-plugin-mp
framework-plugin-next
framework-plugin-node
__tests__
assets
src
.gitignore
LICENSE
README.md
package.json
tsconfig.json
framework-plugin-nuxt
framework-plugin-website
scripts
.all-contributorsrc
.editorconfig
.gitattributes
.gitignore
.gitmodules
CHANGELOG.md
CLI_GUIDE.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.en.md
README.md
lerna.json
package.json
tsconfig.build.json
tsconfig.json
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Tencent CloudBase Framework Node Plugin

Tencent CloudBase Framework Node Plugin

Github License Npm version issue PRs Welcome star

云开发 CloudBase Framework 框架「Node.js App」插件: 通过云开发 CloudBase Framework 框架将 Node 应用一键部署云开发环境,提供自动弹性伸缩的高性能 Node 应用服务,支持底层部署为函数或者 云托管,可以搭配其他插件如 Website 插件、函数插件实现云端一体开发。

功能特性

  • 无须关心底层架构: 只需要开发业务服务,不用适配函数或者容器
  • 节约成本: 资源伸缩,弹性扩缩容,灵活计费,极大节约资源成本
  • 框架支持: 无缝支持原生和前端框架构建的项目
    • 原生 Node.js
    • Express
    • Koa

使用方法

步骤一. 准备工作

具体步骤请参照 准备云开发环境和 CloudBase CLI 命令工具

步骤二. 进入 Node 项目目录进行初始化

如果目前已有 Node 应用项目

cloudbase

如果想全新开始一个项目,可以直接执行 init 来从模板开始一个项目

cloudbase init

步骤三. 一键部署

cloudbase framework:deploy

配置

默认情况下不需要任何配置即可使用,以下配置参数针对有特殊需求的场景

配置示例

cloudbase init 之后会创建云开发的配置文件 cloudbaserc.json,可在配置文件的 plugins 里修改和写入插件配置

{
  "envId": "{{envId}}",
  "framework": {
    "plugins": {
      "server": {
        "use": "@cloudbase/framework-plugin-node",
        "inputs": {
          "entry": "app.js",
          "path": "/nodeapp",
          "name": "nodeapp"
        }
      }
    }
  }
}

配置参数说明

entry

默认 app.js

Node 服务入口文件,相对于projectPath,需要导出 app 或者 server 的实例,同时也支持导出异步获取 app 的 tcbGetApp 方法,方法的返回值为 app 或者 server 的实例。

如 koa 服务的 app.js

const Koa = require("koa");
const { router } = require("./routes/");

const app = new Koa();

app.use(router.routes());

module.exports = app;

nest 服务的 app.js

const express = require("express");
const { NestFactory } = require("@nestjs/core");
const { ExpressAdapter } = require("@nestjs/platform-express");
const { AppModule } = require("./dist/app.module");

const expressApp = express();
const adapter = new ExpressAdapter(expressApp);

exports.tcbGetApp = async () => {
  const app = await NestFactory.create(AppModule, adapter);
  await app.init();
  return expressApp;
};

path

必填,访问子路径,如 /node-app

name

必填,服务名,如node-app

projectPath

选填,指定 Node 服务所在目录,相对于当前项目根目录

buildCommand

0.5.x 版本以后支持

选填,指定构建命令,比如npm run build

platform

选填,底层使用平台,支持 container( 云托管) 和 function (云函数), 默认是 function

containerOptions

选填,当 platform 选择 container 时,可以支持自定义更多高级设置,例如 CPU 内存等

例如

{
  "use": "@cloudbase/framework-plugin-node",
  "inputs": {
    "entry": "app.js",
    "path": "/nodeapp",
    "name": "nodeapp",
    "platform": "container",
    "containerOptions": {
      "cpu": 2,
      "mem": 2
    }
  }
}

具体配置信息请参考 @cloudbase/framework-plugin-container 配置

functionOptions

选填,当 platform 选择 function 时,可以支持自定义更多高级设置,例如 VPC 环境变量等

例如

{
  "use": "@cloudbase/framework-plugin-node",
  "inputs": {
    "entry": "app.js",
    "path": "/nodeapp",
    "name": "nodeapp",
    "platform": "function",
    "functionOptions": {
      "timeout": 5,
      "envVariables": {
        "TEST_ENV": 1
      },
      "vpc": {
        "vpcId": "xxx",
        "subnetId": "xxx"
      }
    }
  }
}

具体配置信息请参考 @cloudbase/framework-plugin-function 配置

wrapExpress

选填,当 platform 选择 function 时,可以支持自动为函数包上一层 express

例如

{
  "envId": "fx",
  "framework": {
    "plugins": {
      "server": {
        "use": "@cloudbase/framework-plugin-node",
        "inputs": {
          "entry": "./api/index.js",
          "path": "/api",
          "name": "github-stats-api",
          "wrapExpress": true
        }
      },
      "pin": {
        "use": "@cloudbase/framework-plugin-node",
        "inputs": {
          "entry": "./api/pin.js",
          "path": "/api/pin",
          "name": "github-stats-pin",
          "wrapExpress": true
        }
      }
    }
  }
}

更多插件

请访问 CloudBase Framework 插件列表 搭配使用其他插件

文档资料

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/TencentCloudBase/cloudbase-framework.git
git@gitee.com:TencentCloudBase/cloudbase-framework.git
TencentCloudBase
cloudbase-framework
cloudbase-framework
gitee

搜索帮助