博客 / 詳情

返回

這應該是前端轉後端最簡單的辦法了,不買服務器、不配 Nginx,也能寫服務端接口,騰訊云云函數全棧實踐

前言:後端開發真的太累了

作為一個想做獨立開發的前端或全棧工程師,每當你想寫個小項目(比如工具箱、記賬本、個人博客)時,熱情往往在配置後端的瞬間熄滅:

  1. 買服務器:幾百塊一年,性能還一般。
  2. 配環境:SSH 連上去,裝 Node、PM2、Nginx,防火牆配置。
  3. 搞域名:買域名、備案(最勸退的一步)、配置 HTTPS 證書。
  4. 寫接口:糾結 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(開啓“白嫖”模式)

  1. 登錄 騰訊云云函數控制枱。
  2. 點擊 “新建” -> 選擇 “從頭開始”

    • 函數名稱:隨便填,比如 rpc-demo
    • 運行環境:Nodejs 16.13 或以上。
  3. 上傳代碼

    • 將你的項目文件夾(包含 node_modules)壓縮成 zip 包上傳,或者直接在在線編輯器裏創建文件並安裝依賴。
  4. 🔥 關鍵步驟:啓用訪問服務 (函數 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

別再讓“服務器運維”阻擋你改變世界的創意了,現在就開始吧!

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.