前言:后端开发真的太累了
作为一个想做独立开发的前端或全栈工程师,每当你想写个小项目(比如工具箱、记账本、个人博客)时,热情往往在配置后端的瞬间熄灭:
- 买服务器:几百块一年,性能还一般。
- 配环境:SSH 连上去,装 Node、PM2、Nginx,防火墙配置。
- 搞域名:买域名、备案(最劝退的一步)、配置 HTTPS 证书。
- 写接口 :纠结 RESTful 规范,
/api/v1/add还是/add?参数放 Body 还是 Query?
我就想写个 简单 的接口,至于这么折腾吗?
今天,我要给你安利一套 "零成本"、"免运维"、"免域名" 的全栈接口方案: 腾讯云 SCF (云函数) + 函数 URL + rpc-server-scf。
你只需要写纯粹的 JS 函数,它就能自动变成 HTTP 接口,不用管服务器,甚至不用管 Nginx!
🚀 什么是 rpc-server-scf?
它是 js-rpc 生态中专为 腾讯云云函数 (SCF) 设计的服务端框架。
它的核心理念是:把云函数变成一个 RPC 服务器 。 你不需要关心 HTTP 请求的报文结构,不需要关心 API 网关的参数透传。你只需要在 api/ 目录下写函数,前端就能直接调用。
🛠️ 后端实战:3步搭建云端 RPC
我们将使用腾讯云 SCF 的 "函数 URL" 功能,它会直接分配给你一个公网 HTTPS 地址,让你彻底告别 API 网关配置和域名备案。
第一步:准备代码
在本地创建一个文件夹,初始化 npm:
bash
mkdir my-scf-rpc
cd my-scf-rpc
npm init -y
npm install rpc-server-scf
第二步:编写业务逻辑 (api/math.js)
我们不需要写路由,只需要在 api 目录下创建文件。文件名就是模块名。
api/math.js
javascript
module.exports = {
// 加法
async add(a, b) {
return a + b;
},
// 乘法
async multiply(a, b) {
return a * b;
},
// 稍微复杂点的逻辑
async calculate(params) {
// 这里可以连数据库、Redis,或者做任何后端逻辑
const { x, y, op } = params;
if (op === 'minus') return x - y;
return 0;
}
}
index.js (入口文件)
一行代码,启动 RPC 服务:
javascript
const { createRpcServer } = require('rpc-server-scf');
// 导出 main_handler 给云函数调用
exports.main_handler = createRpcServer();
这就写完了! 没有 Express,没有 app.listen,代码极其干净。
第三步:部署到腾讯云 SCF(开启"白嫖"模式)
-
登录 腾讯云云函数控制台。
-
点击 "新建" -> 选择 "从头开始"。
- 函数名称 :随便填,比如
rpc-demo。 - 运行环境:Nodejs 16.13 或以上。
- 函数名称 :随便填,比如
-
上传代码:
- 将你的项目文件夹(包含
node_modules)压缩成 zip 包上传,或者直接在在线编辑器里创建文件并安装依赖。
- 将你的项目文件夹(包含
-
🔥 关键步骤:启用访问服务 (函数 URL)
- 在"访问服务"或"触发器"配置中,找到 【函数 URL】。
- 点击 "启用"。
- 鉴权方式 :选择 "不校验 (PUBLIC)"(为了演示方便,生产环境可在代码里用中间件鉴权)。
- 你将获得一个长这样的地址:
https://你的函数ID.scf.tencentcs.com。
(如图所示,不用买域名,直接送你一个 HTTPS 的公网地址!)
⚡️ 前端如何调用?
现在你的后端已经跑在云端了。前端(小程序、UniApp、Web)怎么调?
我们使用配套的客户端 rpc-client-request(专为小程序/UniApp/HTTP场景设计)。
安装
bash
npm install rpc-client-request
调用代码
在小程序或 UniApp 中:
javascript
import { create } from 'rpc-client-request';
// 填入刚才腾讯云分配给你的"函数 URL"
const rpc = create({
url: 'https://service-xxxx.scf.tencentcs.com/release/rpc-demo'
});
// 业务调用
async function test() {
try {
// 像调用本地函数一样!
// 自动发请求给 api/math.js 的 add 方法
const sum = await rpc.math.add(10, 20);
console.log('计算结果:', sum); // 30
} catch (err) {
console.error('调用出错', err);
}
}
完事! 你没有写 wx.request,没有拼接 URL,没有处理 POST 参数,一切就像在写本地代码。
🌟 为什么这套方案是"独立开发者"的神器?
1. 真正的"零运维" (Serverless)
你不需要维护服务器进程,不需要配置 Nginx 反向代理,不需要担心服务器挂掉。腾讯云帮你托管,有请求自动唤醒,没请求自动休眠。
2. 免域名,自带 HTTPS
利用 SCF 的 "函数 URL" 功能,你省去了购买域名、备案(通常需要半个月)、申请 SSL 证书的所有繁琐流程。起步阶段直接用官方链接,省时省力。
3. "白嫖"级成本
腾讯云 SCF 有免费额度(或者非常低廉的按量付费)。对于个人项目、测试项目或者低频工具类应用,成本几乎为 0。只有当你的业务真的做大了,才需要支付少量费用。
4. 极致的开发体验
- 后端:只写业务函数,文件即路由。
- 前端:RPC 调用,像调本地方法一样顺滑。
- 全栈:你可以把精力 100% 放在业务逻辑上,而不是浪费在 HTTP 协议的翻译工作中。
🔗 总结与资源
如果你厌倦了传统的后端开发流程,想快速上线一个全栈应用,SCF + 函数 URL + js-rpc 绝对是你现在的最佳选择。
- 项目 GitHub : github.com/myliweihao/...
- 服务端 SDK :
npm install rpc-server-scf - 小程序客户端 :
npm install rpc-client-request
别再让"服务器运维"阻挡你改变世界的创意了,现在就开始吧!