搞全栈还在纠结 POST、GET、RESTful?试试这个,像调用本地函数一样写接口

停止内耗:我们写的是业务,不是 HTTP 试卷

做开发时,你是否也陷入过这种无效纠结:接口是用 POST 还是 PUT?状态码返 200 还是 201?前端 Axios 封装了一层,后端 Router 又写了一堆。

累不累?我们只是想调个函数存点数据而已。

今天介绍的 js-rpc,旨在让你彻底忘掉 HTTP 协议,回归 JavaScript 函数调用的本质。

1. 服务端:极速启动

拒绝复杂的样板代码,我们先看目录结构,一切约定优于配置。

目录结构

text 复制代码
my-server/
├── api/
│   └── user.js    <-- 对应客户端 rpc.user
├── index.js       <-- 服务入口
└── package.json

启动服务 (index.js)

一行代码即可启动高性能 Node.js 服务,自动扫描 api 目录。

javascript 复制代码
const { create } = require('rpc-server-node');
create(); // 默认监听 3000 端口

编写业务 (api/user.js)

在 api 目录下新建文件,导出的函数即接口。没有 Router,没有 Controller,只有纯粹的业务逻辑。

javascript 复制代码
module.exports = {
  // 登录接口
  async login(username, pwd) {
    if (username !== 'admin') {
      throw new Error('用户不存在');
    }
    // 模拟返回数据
    return { id: 101, token: 'abc-123', name: username };
  },
  
  // 获取详情
  async getProfile(uid) {
    return { uid, role: 'developer' };
  }
};

2. 前端:像调本地方法一样

前端(Web / 小程序 / UniApp)不需要定义 API URL,不需要关心参数在 body 还是 query 里。

调用示例

javascript 复制代码
import { create } from 'rpc-client-fetch';

// 初始化
const rpc = create({ url: 'http://localhost:3000' });

async function main() {
  try {
    // ✨ 魔法时刻:直接调用服务端的函数
    const user = await rpc.user.login('admin', '123456');
    console.log('登录成功', user);
    
  } catch (err) {
    // 自动捕获后端抛出的 Error
    console.error('出错了:', err.message);
  }
}

3. 一套代码,打通全栈

js-rpc 的核心在于全平台兼容。你编写的同一套 api 业务代码,可以无缝运行在:

  • Node.js 服务器 (rpc-server-node)
  • 微信云开发 (rpc-server-tcb)
  • 腾讯云 Serverless (rpc-server-scf)

而在客户端,无论是 Web、小程序、UniApp 还是 Node.js,调用方式完全一致。

这就是真正的全栈:写一次,到处运行。

🔗 开源地址

项目已开源,欢迎 Star ⭐️

从今天起,把 HTTP 协议交给框架,把精力留给改变世界的业务逻辑。

相关推荐
崔庆才丨静觅8 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅9 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅10 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment10 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅10 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊10 小时前
jwt介绍
前端
爱敲代码的小鱼10 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax