Node 框架选型或包推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0bSer7er
V2EX    Node.js

Node 框架选型或包推荐

  •  
  •   0bSer7er 2022-09-30 15:03:17 +08:00 7805 次点击
    这是一个创建于 1138 天前的主题,其中的信息可能已经有所发展或是发生改变。
    后端萌新,前端干过两年,算刚入门吧,换了传统行业小公司,就我一个 IT ,没人请教,因为对 JS 比较熟所以选了 Node,希望能够集思广益找一些符合下面要求的解决方案。

    背景:
    公司用 Zoho 这个 SaaS 平台,虽然是低代码平台但是因为功能限制,需要搭个服务器接收 /返回信息。

    需求&问题:
    1. 目前想要实现的是从 Zoho 获取发票的图片,转成 base64 ,然后发给腾讯的发票识别 OCR 接口,拿到信息再回填到 Zoho ,以及对接钉钉群机器人,获取指令,在 Zoho 里 CURD 数据。这类中间件(不确定,或者应该叫接口转发?)。暂时不考虑做 Web 之类的服务。

    2. 然后是最基础的 token 问题,因为没有(学习)数据库,而且因为是直接在服务器端做开发和测试,服务会经常被 ctrl + c ,所以 refresh-token 之类的凭据是不是要保存到服务器本地的文件?或者有没有什么包能够对多个平台的 token 进行简单的管理和更新?

    3. 还是 token 的问题,后端一般如何处理 token 过期?我自己看了一圈 API ,想到的是根据 expiry 来判断然后提前更新,但是因为会重启服务器,所以 expiry 信息写到数据库是最优解?有没有我这种场景下其他的解决方案?

    4. 目前用的是腾讯国内的轻量云服务器,只用上面这些功能的话服务器需不需要备案?( Zoho 用的是国际版,API 服务器的物理地址应该是在美国)

    希望能够不吝赐教。
    19 条回复    2022-11-02 14:31:10 +08:00
    renmu
        1
    renmu  
       2022-09-30 15:11:29 +08:00 via Android   1
    token 直接发内存里得了,启动服务的时候请求一下 token 接口,过期了就再请求一次。
    反正是公司用,服务商说要备案就备案呗,听服务商的
    wangtian2020
        3
    wangtian2020  
       2022-09-30 15:16:41 +08:00   1
    node-red
    leopod1995
        4
    leopod1995  
       2022-09-30 15:17:38 +08:00   1
    2 & 3 : 低频操作 token 一般可以直接存 db , 每次校验直接查 db ,高频上缓存。 如何处理过期,最简单的加个过期时间戳,每次 verify token 之后比对过期时间。不用 db 的方案是中心化的 redis, 自动加 expire 机制。

    4: 据我所知,腾讯云的服务器是不用备案的
    frankies
        5
    frankies  
       2022-09-30 15:23:35 +08:00 via Android   3
    单人小项目 koa
    多人大项目 nestjs
    不解释。
    Envov
        6
    Envov  
       2022-09-30 16:10:56 +08:00   1
    如此轻量化的需求,koa +1
    liuzhaowei55
        7
    liuzhaowei55  
       2022-09-30 17:03:27 +08:00 via iPhone   1
    小项目直接 fastify ,如果不能满足需要不要 nestjs 直接 Spring boot 走起
    codingBug
        8
    codingBug  
       2022-09-30 18:17:49 +08:00 via Android   1
    fastify 比较简单容易上手
    encro
        9
    encro  
       2022-09-30 20:25:33 +08:00   1
    nestjs + fastify + mikro-orm + graphql 目前我正在用的,哈哈,我不急,慢慢学,在这上面做个脚手架。
    zbinlin
        10
    zbinlin  
       2022-09-30 21:00:45 +08:00   1
    1. 你可以找下 zoho ,腾讯的 ORC ,跟钉钉有没有对应的 nodejs SDK ,如果有的话,可以直接拿来用,如果没有,也可以用 node 自带的 fetch 封装下再用。

    2,3. 可以存 redis 里或 sqlie 里
    jiangzm
        11
    jiangzm  
       2022-09-30 21:43:56 +08:00   1
    midway 传统应用、serverless 、 前后端一体都支持
    shakaraka
        12
    shakaraka  
    PRO
       2022-09-30 22:10:37 +08:00   1
    nestjs 。如果你啥都不知道的话,用 koa 那就是不知从哪下手
    stimw
        13
    stimw  
       2022-10-01 00:00:24 +08:00   1
    小项目为啥都推 koa ,不用 express 么。。。
    ysc3839
        14
    ysc3839  
       2022-10-01 01:24:22 +08:00 via Android   1
    @stimw express 配合 async function 有些坑,koa 没有
    dayeye2006199
        15
    dayeye2006199  
       2022-10-01 08:17:01 +08:00   1
    这类东西连框架都不用。一般就是几个云厂商的函数计算服务,例如 aws lambda 写几个简单逻辑扔上去就可以
    233373
        16
    233373  
       2022-10-02 20:22:12 +08:00   1
    nestjs
    qfdk
        17
    qfdk  
    PRO
       2022-10-06 14:18:09 +08:0   2
    express 选择框架 选择好用的,熟悉的,库多的。koa2 固然简洁,新人别碰。 作为老人写了一次,还是用 express 了
    vite
        18
    vite  
       2022-10-22 11:29:02 +08:00   1
    其实前端转 node 新人我是推荐 koa 的, 不适合一上来就搞很重 /结构规范度高的框架,特别是作为胶水层的 CURD 场景,框架越干净越容易在迭代中逐步理解后端程序的运行机制
    humbass
        19
    humbass  
       2022-11-02 14:31:10 +08:00   1
    新人还是上原生的基础库比较好,逐步过渡;

    简单的项目 express

    负责的项目 eggjs


    estjs,nustjs 做的都比较重了,适合原来开发 java 的入手。对于前端程序员来说,转后端按前后端分离的原则分开学习,前端部分完全不用变,后端部分重点学下如何 curd, 配套的 数据库、缓存、服务器知识。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1365 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:05 PVG 01:05 LAX 09:05 JFK 12:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86