前言:後端開發真的太累了
作為一個想做獨立開發的前端或全棧工程師,每當你想寫個小項目(比如工具箱、記賬本、個人博客)時,熱情往往在配置後端的瞬間熄滅:
- 買服務器:幾百塊一年,性能還一般。
- 配環境: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:
mkdir my-scf-rpc
cd my-scf-rpc
npm init -y
npm install rpc-server-scf
第二步:編寫業務邏輯 (api/math.js)
我們不需要寫路由,只需要在 api 目錄下創建文件。文件名就是模塊名。
api/math.js
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 服務:
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場景設計)。
安裝
npm install rpc-client-request
調用代碼
在小程序或 UniApp 中:
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 絕對是你現在的最佳選擇。
- 服務端 SDK:
npm install rpc-server-scf - 小程序客户端:
npm install rpc-client-request
別再讓“服務器運維”阻擋你改變世界的創意了,現在就開始吧!