网站首页 > 精选教程 正文
作者: 五月君
转发链接:https://mp.weixin.qq.com/s/jhcFDiQ4thg6_xcHUAZPag
前言
上面这个图片不是从网上随便找的,来自于 SpaceX-API 项目的 Github 网站,想起了之前说的一个玩笑 “面试造火箭” 这次是真的造火箭了。。。
SpaceX-API 是什么?
SpaceX-API 是一个用于火箭、核心舱、太空舱、发射台和发射数据的开源 REST API。
https://docs.spacexdata.com 展示了所提供的 API 接口,还包括多种语言的接口调用,下图右侧展示 Nodejs 的调用示例及相应返回值。
技术栈是什么?
- 部署在美国中部 Linode 服务器上。
- 使用了 Nodejs 的 Koa 框架。
- 使用了 Redis、Nginx 和 Cloudflare 进行内容缓存。
- 使用了 Jest 和 Supertest 做测试。
- 使用了 Circle CI 进行持续集成/部署。
- 所有的数据存储在 MongoDB Atlas 3 节点的副本集集群中。
- 使用 mongodump 在晚上进行数据备份,在这里查看 https://backups.jakemeyer.sh/。
Koa 在 Nodejs 中也是一个比较知名的框架,之前也有 Node 同学问,有没有什么开源的相关项目可以学习的?
SpaceX-API 这个项目提供了很多丰富的数据,虽然它不能真正让你造出一个火箭(并不包含火箭真正的制作步骤,),但是借助它提供的数据做一些有意思的项目还是可以的,通过开源项目也是一个学习的过程。
上图展示了 SpaceX-API 的目录结构,可以看到使用到 koa、mongoose 还有 ioredis 等,文末阅读原文你可以学习它们在该项目中是如何使用的。
如何部署
NPM 本地部署
熟悉 Nodejs 的朋友,你可以通过 NPM 快速在本地部署该项目,如果你还没有安装 Nodejs 可以参考我的这篇文章 “3N 兄弟” 助您完成 Node.js 环境搭建Nodejs 安装成功之后 NPM 就有了。
1. 克隆进入到这个仓库
$ git clone https://github.com/r-spacex/SpaceX-API.git && cd SpaceX-API
2. 安装依赖
$ npm install
3. 运行 ESlint 和所有的测试
$ npm test
4. 开启这个应用
$ npm start
使用 Docker
除此之外你还可以使用 Docker 的方式,前提也是要确保你的 Docker 已正确安装,如果你对 Docker 也不熟悉,不要紧可以看看这篇介绍 一文零基础教你学会 Docker 入门到实践
$ git clone https://github.com/r-spacex/SpaceX-API.git && cd SpaceX-API
$ docker-compose build
$ docker-compose up
Reference
- github.com/r-spacex/SpaceX-API
推荐JavaScript经典实例学习资料文章
《一文彻底搞懂JavaScript 中Object.freeze与Object.seal的用法》
《可视化的 JS:动态图演示 - 事件循环 Event Loop的过程》
《可视化的 js:动态图演示 Promises & Async/Await 的过程》
《Pug 3.0.0正式发布,不再支持 Node.js 6/8》
《通过发布/订阅的设计模式搞懂 Node.js 核心模块 Events》
《「速围」Node.js V14.3.0 发布支持顶级 Await 和 REPL 增强功能》
《JavaScript 已进入第三个时代,未来将何去何从?》
《前端上传前预览文件 image、text、json、video、audio「实践」》
《深入细品 EventLoop 和浏览器渲染、帧动画、空闲回调的关系》
《推荐13个有用的JavaScript数组技巧「值得收藏」》
《36个工作中常用的JavaScript函数片段「值得收藏」》
《一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」》
《手把手教你如何编写一个前端图片压缩、方向纠正、预览、上传插件》
《JavaScript正则深入以及10个非常有意思的正则实战》
《前端开发规范:命名规范、html规范、css规范、js规范》
《100个原生JavaScript代码片段知识点详细汇总【实践】》
《手把手教你深入巩固JavaScript知识体系【思维导图】》
《一个合格的中级前端工程师需要掌握的 28 个 JavaScript 技巧》
《身份证号码的正则表达式及验证详解(JavaScript,Regex)》
《127个常用的JS代码片段,每段代码花30秒就能看懂-【上】》
《深入浅出讲解JS中this/apply/call/bind巧妙用法【实践】》
《干货满满!如何优雅简洁地实现时钟翻牌器(支持JS/Vue/React)》
《面试中教你绕过关于 JavaScript 作用域的 5 个坑》
作者: 五月君
转发链接:https://mp.weixin.qq.com/s/jhcFDiQ4thg6_xcHUAZPag
猜你喜欢
- 2024-10-22 FastDFS的三大误解 fastdfs的好处
- 2024-10-22 Linux新手入门系列:FastDFS概念和原理
- 2024-10-22 技术分享:四个全新维度,高效优化你的HTTP性能
- 2024-10-22 码农大叔打赌——你不明白HTTP1.0/HTTP1.1/HTTP2.0的区别
- 2024-10-22 科普文,Linux系统服务和构建运维,常识分享
- 2024-10-22 迷你公司落地oss对接方案-oss直传
- 2024-10-22 zuihou-admin-cloud微服务脚手架 微服务 容器云
- 2024-10-22 「推荐」基于在线代码生成器的多租户开发平台
- 2024-10-22 多租户微服务脚手架 zuihou-admin-cloud,不错的学习案例
- 2024-10-22 多租户微服务脚手架 zuihou-admin-cloud,及1.2 版本正式发布
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)