利用Heroku部署第一个Nodejs API

这次尝试的重点是去理解web app架构应用部署上线的方法,以及解决API的跨域访问问题,所以具体的API的功能并不是重点。这里展示的API非常简单,返回一个包含我名字的json对象。

上线部署用到的工具,主要是heroku这个平台。

1应用的大体结构和功能

利用express来开发这个API,代码的内容也是很简单的:

1

2

2 利用heroku的部署步骤和原理

关于heroku可以分为两个部分:创建项目和上线部署。

关于创建项目

在本地创建git仓库,如下:

3

在heroku的平台上,实际上是把本地的代码推到了heroku host的远程仓库,并且这个远程仓库跟最终上线的app相绑定。(user deploy the app’s code  by  pushing it to a special Heroku-hosted remote that’s associated with your app)

通过安装heroku CLI,可以使用heroku create来创建应用和相绑定的远程git仓库。

4

上面这个截图的最后一行很明显给出了一个app的URL和一个同名的git

可以通过git remote -v指令来确认下:

5

这样在开发完成或者做了修改之后,只需要push到heroku这个远程仓库上就行了

heroku的打包和部署过程还是挺有意思的,这里涉及了很多它自己定义的术语,比如: Procfiles, slug,  Dynos等等,非常有意思。

7

对于nodejs的应用来说,相应的东西都配置在package.json里面。比较关键的就是main入口程序和npm start的启动程序。

关于heroku的工作流可以看它的官网介绍:

https://devcenter.heroku.com/articles/how-heroku-works#building-applications

3 解决API的跨域问题

就像所有的API一样,如果不做特殊的设定,在发送HTTP请求的时候,是有跨域的问题的

所以需要在node servcie里做CORS,也就是cross origin resource share,允许跨域的资源分享。关于这个东西,express的文档里有专门的指导,如下:

https://enable-cors.org/server_expressjs.html

8

 

Leave a Reply

Your email address will not be published. Required fields are marked *