Ⅰ 有了nodejs php和js有什么区别
node.js是为js语言提供了后端的解决方案。
php与js有相似的地方在于它们均是脚本语言,不需要像java一样需要在平台上持续运行占用大量系统资源。
但php只是服务器脚本,它只能在安装了Php语言的web服务器上运行
而js则是可以在任何装有引擎的地方运行,一般是浏览器引擎,node.js也是通过在服务器上部署google v8引擎以实现后端功能
Ⅱ nodejs的优势
NodeJs的优势:
现在的很多的服务器端的语言(PHP,JAVA,ASP.net),有什么问题呢,现在的服务器端的语言在用户访问服务器时,为每个用户链接创建了一个线程,但每个线程大约要耗费2M的内存,如果一个8G内存的服务器,也就能链接4000个左右的用户,如果用户的链接数较大,就必须增加服务器的数量,而且现在用户的链接方式有很多(如app,网页同时访问),这就又涉及到服务器共享的问题,所以服务器怎么支持最大的同时链接用户量就成了一个问题;
NodeJS修改了客户端到服务器端的链接方法,解决了这个问题,他不在为每个客户端创建一个新的线程,而是为每个客户端链接出发一个NodeJs内部进行处理的事件,所以NodeJS具备同时处理多达几万个用户的客户端链接的能力;
NodeJS适合开发的应用程序:
当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用NodeJs来进行应用程序的开发,例如:
1、聊天服务器:如果聊天的人很多,用户的与服务器之间的并发链接量很大,但是服务器端的数据处理并不复杂;
2、综合类服务网站和电子商务网站的服务器:在这类网站中的服务器端,往往可能每秒存内可以接受多达上千条的数据并且需要将这些数据写入数据库中,NodeJs可以通过其队列机制将这些数据迅速写入缓存区中,然后再通过每一个单独的处理从缓存区中取出这些数据并将其写入数据库中,如果是其他的服务器(如Apache服务器或Tomcat服务器)的话,由于这些服务器采用的是阻塞型I/O机制,因此每条数据写入到数据库中都要等待一段时间(等上一条写完,才能写下一条),但是NodeJs使用的是非阻塞的I/O机制,因此可以实现这些数据到数据库中的写入,而不必再为每条数据的写入而等待一段时间;
总结:
一个规模稍微大点的系统都不是一种开发语言可以搞定的,往往是几种混杂一起,比如c、c++做服务器端开发,java做业务逻辑,php等做前端展示,此外还需要消息中间件等等。
nodejs可以很快地在服务器端做原型(原来只有c系和java等能做的事情,性能还很高),而且代码量相对会少很多;另一点是它的语法优势,js闭包等。但它不太适合做cpu密集型处理的工作,只能绕着弯去解决,据说这次QCon会有人分享这方面的研究成果,可以关注下。
每种语言都有它适合的领域,没必要强求一门语言可以解决所有事情,拥有其它语言的特性,只有不断的tradeoff把系统做出来才是目标。这些都是丛书上看到总结的,还望指正
Ⅲ nodejs是后端还是前端
我的理解是,这是一种可以用前端语言写后端的解释器。如果你是前端开发人员,那么一定熟悉javascript,那么学完node.js就升级成全栈工程师了。node.js是可以代替PHP或者java开发后端的中间件,或者说是工具。
Ⅳ php 和nodejs 的各自优势有哪些,如果无基础开始,要学那个好
作者:MiseryLee
链接:http://www.hu.com/question/35117771/answer/61377174
来源:知乎
着作权归作者所有,转载请联系作者获得授权。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
以上这句话摘于网络。PHP的语法是公认的比较独特的语法了,集百家之长,再加以创新。学习过OO的同学们一定会对此倍感亲切。不过对于我并不长的PHP编码经历,让我无法忍受的一点就是PHP的变量名必须在前面加一个$符号了。
至于Nodejs,Node本身就是Javascript语言,对于Web前端脚本开发者来说,学习Node简直是如鱼得水。Javascript作为脚本语言,在代码的编写上有极大的自由(画外音:PHP也是脚本语言好么!),但是Javascript的异步编码风格确实是让以学习同步编码风格的语言入门的同学Hold不住。
在语法方面,我更倾向于Nodejs(毕竟人家是写Javascript出身的233333)。PHP对于臣妾来说写的实在太累啦~
2.效率
这一点其实没有必要比较了,
Web语言效率问题,PHP还是Nodejs
看一下这里一楼的大大说的。
Nodejs凭借高效的V8引擎和它非阻塞异步I/O的特性,在其执行效率上远远超过了其他的脚本语言。
Node.js比PHP快14倍!
这里这位大大在效率方面分析的更加到位。当然我并不是在追捧Nodejs,就像这位大大说的
这不是简单语言细节之争,而是语言框架之争。将Node.JS这种异步机制从Javasctipt搬移到其他语言PHP .NET Java其实都会取得比原来堵塞方式有数十倍提高。
3.使用场景
毋庸置疑,这两种语言都是为Web开发而生。PHP多样化的内置方法和库,让Web开发变得极其的方便和高效,成熟的语言框架也给开发者提供了足够高的健壮性和稳定性。而Nodejs以其强大的特性吸引了大量的开发者为其贡献扩展库,Nodejs项目虽然还很年轻,但是已经聚集了大量的开发资源。
4.小结
毕竟对PHP了解的较少,所以以上言论中难免有点偏向于Nodejs,但是PHP发展多年屹立不倒肯定是有它的道理的,网络还用的PHP呢。
至于Nodejs,作为一门新兴(并不新啊,Javascript可比PHP老多了)语言来讲,它独特的设计特性足够吸引开发者向它看了。
最终回到题主的问题,不知道题主说的没有基础是指完全没有编程基础还是没有服务器开发基础?
如果完全没有编程基础的话,我建议题主还是先去学习C语言,先入了这一行,再选工具吧~
如果有编程基础的话,如果之前是学习OO的,建议先从PHP入手,毕竟更容易过渡,并且网络上对于PHP的资料要比Nodejs多得多。
如果之前学习过Javascript,我还是建议先从PHP入手,就像上面说的,先入了这一行,再选工具。服务器开发也算一个小行了,如果对服务器开发不了解,对网络机制不了解的话,先从PHP着手,把这些相关知识补充起来。
如果实在是被Nodejs的优势吸引住了的话,我建议先好好学习Javascript高级编程,深入理解一下异原型链和回调机制,这会对入手Nodejs有极大的帮助。
如对您有帮助,望采纳,谢谢
Ⅳ php和node.js
都是培训机构和脑残初学者炒起来的噱头而已,实际去工作,后端用的全是静态语言。
所有的动态语言,都有劣根性。。就是初学的时候觉得很爽,不用考虑变量类型。 随便var a=1(js), let a=1(js es6),或是$a=1(php),再或者直接a=1(python)。。总之根本不需要在意后面的值到底是什么类型,就可以无脑随便赋值。。。。
难道静态语言的作者,都是脑残? 明明直接可以a=1,为什么非要设计成public int a=1(C++,C#,JAVA等)?
这就像自行车和汽车的区别。明明两个轮胎,一个脚蹬子就能走起。为什么还非要离合器,方向盘,迈速表,搞得那么复杂?
如果你只是去菜市场买菜,自行车一定是世界上最好的交通工具。学习简单,骑上就走,还不怕堵车。汽车完全像个废物,驾驶麻烦,启动慢,还费油,出门各种堵。
无论你去菜市场多少次,比较了多少次,始终都会觉得,自行车比汽车强,所以一直自己给自己洗脑,自行车就成了世界上最好的交通工具。。直到有一天出趟远门,才能真正了解什么是交通。。。。
无论js,还是php都只是自行车而已,你觉得是最好的,同样因为你每天只是去菜市场。。。只要你实际完成过任何一份完整的工作任务,就明白为什么需要静态语言了。世界上没有任何一个公司的项目,是用几百行代码就能搞定的,一两万行代码,已经算是小项目了。。。但初学者的练习项目,往往写几百行就属于“大工程”。
就比如Node吧。几乎所有靠谱的node程序员,都是用Typescript在写逻辑,而不是Javascript。为什么?因为Typescript是编译型,是强类型,是静态语言。
Ⅵ NodeJs的优势和适合开发的程序
很多同学可能都听说过nodejs,并且知道他是可以运行在服务器上的javascript,但是他的使用场景可能大家并不是很清楚,最近也在看学习nodejs,就做了一下小总结;
NodeJs的优势:
现在的很多的服务器端的语言(PHP,JAVA,ASP.net),有什么问题呢,现在的服务器端的语言在用户访问服务器时,为每个用户链接创建了一个线程,但每个线程大约要耗费2M的内存,如果一个8G内存的服务器,也就能链接4000个左右的用户,如果用户的链接数较大,就必须增加服务器的数量,而且现在用户的链接方式有很多(如app,网页同时访问),这就又涉及到服务器共享的问题,所以服务器怎么支持最大的同时链接用户量就成了一个问题;
NodeJS修改了客户端到服务器端的链接方法,解决了这个问题,他不在为每个客户端创建一个新的线程,而是为每个客户端链接出发一个NodeJs内部进行处理的事件,所以NodeJS具备同时处理多达几万个用户的客户端链接的能力;
NodeJS适合开发的应用程序:
当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用NodeJs来进行应用程序的开发,例如:
1、聊天服务器:如果聊天的人很多,用户的与服务器之间的并发链接量很大,但是服务器端的数据处理并不复杂;
2、综合类服务网站和电子商务网站的服务器:在这类网站中的服务器端,往往可能每秒存内可以接受多达上千条的数据并且需要将这些数据写入数据库中,NodeJs可以通过其队列机制将这些数据迅速写入缓存区中,然后再通过每一个单独的处理从缓存区中取出这些数据并将其写入数据库中,如果是其他的服务器(如Apache服务器或Tomcat服务器)的话,由于这些服务器采用的是阻塞型I/O机制,因此每条数据写入到数据库中都要等待一段时间(等上一条写完,才能写下一条),但是NodeJs使用的是非阻塞的I/O机制,因此可以实现这些数据到数据库中的写入,而不必再为每条数据的写入而等待一段时间;
总结:
一个规模稍微大点的系统都不是一种开发语言可以搞定的,往往是几种混杂一起,比如c、c++做服务器端开发,java做业务逻辑,php等做前端展示,此外还需要消息中间件等等。
nodejs可以很快地在服务器端做原型(原来只有c系和java等能做的事情,性能还很高),而且代码量相对会少很多;另一点是它的语法优势,js闭包等。但它不太适合做cpu密集型处理的工作,只能绕着弯去解决,据说这次QCon会有人分享这方面的研究成果,可以关注下。
每种语言都有它适合的领域,没必要强求一门语言可以解决所有事情,拥有其它语言的特性,只有不断的tradeoff把系统做出来才是目标。
这些都是丛书上看到总结的,还望指正
Ⅶ nodejs php哪个好
Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言.
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
Node.js遵循事件驱动的非阻塞I/O模型,PHP遵循一个阻塞模型;
PHP应用程序可以在任何服务器上运行,Node不行。
1、性能方面:
由于 Node.js 遵循事件驱动的非阻塞I/O模型,与传统的后端技术相比,Node.js 能够处理大量的服务器请求。PHP 遵循一个阻塞模型,其中在服务器端创建多个线程来处理多个客户端请求,如果代码没有被优化,它会导致高服务器负载和响应时间。
2、托管和部署:
PHP 应用程序可以在包括 Nginx 和 Apache 以及 Windows 和 Linux 平台在内的任何服务器上运行,这使得部署过程变得更容易。
而 Node.js,则需要具有 SSH 访问权限的虚拟服务器。因此,在没有任何控制台命令和 Secure Shell(SSH)知识的情况下,用 PHP 部署小型企业和个人应用会更好。
3、外部依赖:
Node.js 依赖关系较少,用几行代码就可以设置一个 Web 服务器。但运行 PHP 应用程序,就需要外部服务器软件。用 Node.js 的开发人员只需要 NPM(节点包管理器)就可以下载 Node 模块,这些模块可以轻松地集成到应用程序中,提供额外的功能。
4、CPU 扩展任务:
Node.js 可能在高吞吐量方面表现优异,但是当应用程序繁重,需要 CPU 做大量工作时,Node.js 肯定会有所欠缺。在这种情况下,PHP 最适合做 Web 应用程序的后端。
5、单页应用程序:
如果您使用过 Gmail,那么您可能知道什么是单页应用程序(Single Page Application)。Web 应用程序在初始客户端请求时加载,之后根据客户端请求刷新的网页的特定部分。Node.js 与 AngularJS 的联合是开发单页应用程序的完美方案。
6、开发环境:
Node.js 可以用于桌面应用程序开发(Windows,Linux和Mac),移动应用程序开发(混合和跨平台应用程序),甚至构建基于控制台的应用程序。虽然有一些也可以使用 PHP 来开发,但是大多数开发人员不会这样做。
7、社区支持:
由于 PHP 比 Node.js 早诞生将近20年,所以在文档,API 和代码库等在线资源方面更为丰富。所以很有可能其他人也尝试了你想要用代码完成的事情并从中获得了帮助。
另一方面,Node.js 虽然已经得到了开发者和组织的广泛关注,但是它支持开发者开发的资源缺相当少。
8、学习曲线:
编写 Node.js 代码对于新手甚至是专业的 JavaScript 开发人员来说都不是件容易的事情,因为他们需要在入门之前理解一些复杂的概念,比如 web worker 和回调函数。相反,PHP是一门非常友好的编程语言对于开发 Web 应用程序的新手来说。
Node.js 和 PHP是相辅相成的,因为这两种技术都有各自的优点和缺点。这大多是相似的情况在比较或选择用于Web,桌面和移动开发的其他技术时。Node.js有前途,并且肯定会占据PHP市场的一部分,但是不能完全取代 PHP。
Ⅷ nodejs,java,php选哪个好
这个选择,涉及比较多
1、兴趣
2、自己的条件
3、前景
nodejs是前端中的一种技术,仅仅会这个,还不能工作,后面2个,是偏后端的技术
java,一直很牛X,企业级别的项目,基本上都用这个,如果考虑长期发展,这个是首选,不过同时这个难度也是最大的,如果自己没有语言基础,这个和后面的一个,最好不要选择,你选择测试可能会更加好一点
php,这个是做网站的,现在的网站,基本上都是用这个来做了。
学这三个中的任何一个,都需要你有一点基础,第一个是前端,第二个偏长期发展,第三个偏网站
我想,你自己有选择了