我正在考虑从PHP切换到使用Node.js来开发我的网站。然而,在研究Node.js一段时间之后,我似乎无法确切地找到如何使用Node编写网页。我看到您在Node中使用response.write()
将html写入您的网页,但这似乎是一件单调乏味的事情,将您的整个网页作为节点文件中的字符串文字。 Web开发如何在Node中运行,而不是PHP将脚本嵌入HTML文件的方法?
答案 0 :(得分:2)
您不一定需要为视图的每一行使用response.write,您也可以使用模板引擎。搜索" node.js模板引擎"。在第一印象,它可能看起来很乏味,但类似的方法可以防止你编写错误的代码。
答案 1 :(得分:2)
PHP是一种脚本语言,节点是一个基于javascript构建的平台。
要使用node.js启动Web开发,首先您必须了解使节点不同的原因。 Node为您提供了一种对数据库进行异步调用的方法(这是一个非常简化的解释),然后您可以将其包装好的html并将其发送(路由)到浏览器。或者,您可以在前端使用angular.js之类的东西,并使用node.js来生成db请求和响应,angular.js会更新前面的html。如果您喜欢使用异步调用获取数据的单页应用程序的想法,请使用带有角度的节点。我喜欢的教程是https://scotch.io/tutorials/creating-a-single-page-todo-app-with-node-and-angular希望这有帮助!
答案 2 :(得分:2)
正如其他人所回答的那样,Node存在模板引擎。根据Web开发的当前趋势,大多数现代Web框架都鼓励将代码与视图(或您提供给客户端的HTML)分离。例如,Ruby的ERB模板,Python中的Jinja2,Handlebars / Jade for Node,以及现在许多现代PHP框架也支持这一点(Zend / Slim)。
另一个主要区别在于它们的工作方式以及语言的设计方式。 PHP是一种面向对象的语言,支持类,继承,成员可见性,接口等.Node.js是Javascript,所以使用原型继承。
社区和生态系统也不同。现代PHP倾向于使用Composer包管理器,这是在PEAR之后。但是,npm是官方节点包管理器,它与平台深度集成。搜索新包然后在项目中使用它们是微不足道的。
主要的体系结构差异是Node在设计上也是异步的,这意味着它在单个线程中运行,并且在内存有限的系统上可能比PHP处理更多的连接。当请求进入PHP应用程序时,所有服务/控制器和您定义的所有内容都必须重新安装,您可以定义PHP文件并让Apache / Nginx处理它们。在Node中,您有一个节点进程,您可以在请求之外代理。
答案 3 :(得分:1)
Node.js提供了许多模块来执行这些操作,有一个名为express for for node.js的框架http://expressjs.com/您可以使用模板引擎并创建视图。一些例子像ejs或玉。它不一定是一个字符串。
答案 4 :(得分:0)
PHP非常注重从模板创建网页,而Node.js的范围更低,范围更广。概述PHP和Node.js之间的差异:
http
模块启动Web服务器,然后在向服务器发出请求时提供回调。决定用哪个页面响应请求等等,都是你要做的工作。在PHP中,将请求路由到特定的PHP文件,压缩,解码POST和GET变量等都是通过使用Apache完成的 - 您的PHP文件就像Apache在收到请求时运行的模板一样。在Node.js中,从启动服务器到发送HTML的所有内容都在Node.js脚本中完成 - 你必须做所有事情。
HTML不是Node.js中的第一类公民,它是PHP。通常,在Node.js中,您只是向客户端发送字符串。 Node.js有很多第三方模板工具 - 但它们是依赖项,而不是内置函数。