如何解密Node.js应用程序

时间:2016-11-08 20:45:18

标签: javascript node.js

我在本地安装了npm并用它来安装Bower,Grunt,Polymer&约曼。但我仍然对Node.js实际上是什么感到困惑。

在我以前在本地设置Apache服务器的那天,安装phpMyAdmin并开始处理我的项目。然后,我可以使用SQL数据库&我的项目的整个文件目录,包括php,html,css等文件,并上传到我的服务器,它将运行。

我注意到PHP已经不再适用了,并且每个人都在运行JS框架,如Angular,Backbone和amp; Ember,Polymer也很有趣,但我不确定它是否是一个框架。

所以我的问题是如何部署使用node.js 构建的内容?例如一个内置于Angular,Backbone,Ember或Polymer的仪表板网站/应用程序。

我也猜测SQL不再是那种方式了,但是有一个noSQL选项,比如PouchDB或Mongo?我真的不知道人们喜欢用这些新框架存储数据,也许他们仍然使用SQL?

我可以简单地复制PHP& SQL并上传SQL数据库&然后文件目录,它将在服务器上运行?

我已经使用firebase来部署聚合物网站/应用程序,但我想知道我是否可以使用标准的Web主机而不是firebase或heroku

2 个答案:

答案 0 :(得分:2)

有两种常见的方法可以解决这个问题。您可以根据客户端应用服务器应用来考虑它们。

服务器

如果你只是创建一个Node.js服务器,你可能想要按顺序使用库Express(它是Node.js' s http的包装器)初始化服务器。然后,当您将源代码上传到AWS EC2或Heroku时(仅作为示例),您告诉启动脚本调用您的服务器(如果您的服务器初始化代码位于./server.js,例如,您&# 39; d告诉您的EC2或Heroku脚本运行node server.js)。

客户端应用

有很多工具可以编译客户端应用程序(静态站点),其中许多都与Node.js一起使用:例如,Bower和Webpack。在这种情况下,Node.js仅负责运行此构建工具并为您编译应用程序。然后,它就像将已编译的静态文件复制到您的托管服务提供商(例如AWS S3)一样简单。在答案范围之外,您可以使用Codeship或CircleCI等持续集成工具,以便自动编译并将这些静态文件上传到您的托管服务提供商。

混合

如果您希望Heroku为静态站点提供服务,您可以通过Node.js实际运行服务于静态文件的服务器的方式进行设置。这是上述两种方法的组合,因为您需要在Node.js内部实际运行http服务器,该服务器负责提供静态内容。您也可以在同一个地方嵌入API服务器,但通常的做法是在其他地方使用单独的API服务器(关注点分离)。

另外几条评论:

  

SQL不再是那种方式了,但是有一个noSQL选项,比如PouchDB或Mongo?

假。 SQL和NoSQL都有它们的好处。这超出了范围,但在高级别上,模式之间存在差异(无论是在数据库服务器上还是在客户端服务器上维护),操作都喜欢连接等(这会影响可伸缩性),以及每个人的功能数据库提供程序:例如,Redshift是一个基于Postgres的SQL数据库,它使用柱状存储,这对于运行跨越巨大数据集的求和操作非常有用。有Node.js驱动程序,你只需要选择你的毒药。

  

我想知道我是否可以使用标准网络主机而不是firebase或heroku。

我不会使用术语"标准"来引用主机,因为基本上所有主机提供商都做同样的事情:提供内容。如果您正在使用Node.js,那么托管服务提供商有很多选择:AWS S3,AWS EC2,Heroku,Bluehost和无数其他提供商。

答案 1 :(得分:-1)

我认为您不能简单地复制文件,除非您编写的脚本会在文件更改时自动调用npm init(或任何启动脚本)。

只要您在服务器上拥有shell访问权限,就可以使用Apache或nginx作为节点应用程序的反向代理,并且可以非常轻松地使用git设置推送部署系统。

相关问题