近日bunjs v1.39 已经出来了,逐步完善的bun 前些日子被AI公司Anthropic收购了。伴随版本的迭代和升级,bun 和nodejs 你会怎么选择? 一个是面向AI的,一个是稳固的前端体系。目前两者在日常前端使用过程带来很大的便利性和复杂性。Bunjs和一些日常的nodejs框架非常搭配,如express,hoho均能一起使用。这个时候你会发现之前用过的python fast api ,go gin等等框架又有什么关系? 日常中,express,go gin,fastapi, kotlin,dart均可以搭建http的服务。这个搭建可以以极少的代码用在一些小的项目中去。如结合一些flutter 使用。这样搭建一些登录服务,上传服务,检测数据库连接情况等等。问题是?为什么不用java,php,go ,c# 呢?给出的理由是什么?下面看看它的代码量为什么会喜欢它。以bunjs为例。安装过程十分便利。基于npm的方式如下,目前基于nodejs 22 版本实验。更多的安装方式查看 https://bun.com/blog/bun-v1.3.9首先创建一个文件,index.ts。为什么不是js?bunjs 对编译ts是直接支持。所以这个也是bunjs 对typescript友好的地方之一。const server = Bun.serve({ routes: { "/": req => { return new Response(`Bun Test`); }, "/api/test": new Response("OK"), "/api/login": { POST: async req => { const body = await req.json(); return Response.json({ code: 200, msg:'登录成功',data:{ token:'123456789abc' } }); }, } },});console.log(`Server running at ${server.url}`);
怎么运行?输入bun index.ts 即可。默认的端口为3000 一个http 服务就搭建起来了。F:\code\bunjs>bun index.tsServer running at http://localhost:3000/
从里面的代码可以发现Bun.serve 里面填充路由的代码,则可以运行起来。查看运行的结果 通过chrome 浏览器观察浏览器输出内容。其次使用postMan 来测试post的请求方式。这样运行的结果也能通过工具观察起来。上传文件也可以加上日常使用,如上传保存到一个upload是的目录。post man 进行模拟请求返回接口数据,通过这样方式来实现搭配一部分日常使用。相对比较起fastapi简洁的接口,bunjs这些代码量也非常少。这对于我们日常测试和调试一些APP接口也可以先自行编写一些测试用例来调试接口的返回情况。bunjs 可以直接导出exe,命令如下 bun build index.ts --compile --outfile index.exe ,生成代码会包含zig运行时会比较大一些。编译起来的文件可以方便提供别人使用。
以上的功能还是很多没有实验。并不是安利谁和谁。bunjs迭代后和nodejs 也十分友好。文档也很完善。至于生态如何?还是那句。喜欢就用吧。python +bunjs+nodejs都是不错的选择。而nodejs 发行版本速度也是很快。还支持websocket 等使用。那样选择会更多了。最后归纳一句,搭配喜欢的工具日常可以实验。至于商用则另外打算了。https://hono.dev/docs/getting-started/nodejs
https://bun.com/docs/quickstart
https://fastapi.tiangolo.com/
https://expressjs.com/