Ben*_*aum 79 javascript model-view-controller node.js
我想知道如何用Node.js从头开始开发一个网站.我理解我怎么可能这样做,但我对最好的设计实践很感兴趣.
我需要这个理论网站:
在PHP中,构建一个非常小的网站非常简单 - 我在Apache和MySQL服务器上设置PHP然后执行以下操作:
includes/db/
其中有connect.php用于连接数据库,具有常见数据库相关功能的文件等等includes/layout/
有像footer.php,header.php和其他布局相关的东西includes/users/
处理用户相关的操作那么PHP只是让你构建页面并将这些文件包含在一起形成一个网站 - 我可以这样:
<?php
require_once('inclues/users/user_session.php');
require_once('inclues/db/connect.php');
require_once('inclues/design/header.php')
?>
// Other php or html or related content relating to the page
<?php
require_once('inclues/.../footer.php');
?>
Run Code Online (Sandbox Code Playgroud)
我想知道Node.js中可能有什么相似之处 - 我正在寻找一种方法来实现这一点,尽可能简单,快速和直接.
如果答案不简单,我会喜欢推荐书,我不介意阅读.
我喜欢基于事件的编程,我非常喜欢JavaScript的能力,我对Node.js感到非常兴奋.我想学习如何从一开始就以正确的方式开发这种东西.
Rem*_*.co 184
从坏消息开始:由于Node.js是一种非常年轻的技术,我认为你会发现创建一个完整的网站并维护/操作它的过程将与你现在习惯的非常不同.
Josh3736补充说:一旦你弄清楚Node.js及其各种软件包(Connect,Express)如何工作,我发现你可以非常快速地开发新网站.
Node.js中当前存在的粗糙边缘,加上其开发的快节奏和所涉及的所有模块都会使事情复杂化,并使事情变得不那么简单,快速和直接.
把它排除在外,这是个好消息:
该节点包管理器,NPM有很多很好的工具和框架,扩大Node.js的裸露的骨头的功能,使其适合于创建一个Web服务器.
最值得注意的是Express Framework,其中包含运行Web服务器所需的几乎所有内容(包括cookie,会话和路径路由).另外Express支持partials,它负责你的页眉和页脚包含.
Express建立在Sencha的Connect之上.Cookie和会话实际上由Connect提供支持.Express可以简化您的路由并处理视图/部分.因此,如果你不需要Express附带的所有铃声和口哨,你可以选择Connect.
如果您想为这些局部使用模板,Jade模板引擎可以为您加速.虽然Josh3736指出翡翠很慢而且空白很重要.可以在这里找到更完整的概述,其中包括他最喜欢的,doT.(我个人只使用Node.js作为socket.io
基础应用程序,所以在模板方面他比我更好.)
您可以使用db-mysql模块从Node.js连接到MySQL ,但如果您不需要它,因为您正在访问连接到已经存在的系统的数据,我建议使用更多...'现代'方法,就是使用NoSQL数据库,因为大多数Node.js项目似乎都这样做.通过Mongoose的MongoDB是流行的方式.
或者,如果它只是存储您感兴趣的对象,那么只需选择Redis(无论如何您可能需要它).
一旦您的网站完成,您将必须部署它并确保它继续运行.有很多方法可以实现,例如使用内置集群支持或使用功能更友好的forever
npm模块.有关更多信息,请参阅我的这个问题.
结论:
我想要的是这个:
询问在Node.js中构建网站的最佳实践是什么,与询问在PHP中构建网站的最佳方式是一样的:100位开发人员会给出100个不同的答案.
NPM拥有各种优秀的框架,可以大大简化所涉及的许多任务,但这一切都基于偏好,哪一个是真正的方法.
正如我所说,Node.js仍然是一种非常年轻的技术,因此没有任何框架或其他工具已经成为"事实上的标准"; 对于你想要做的大多数事情,可能有各种各样的选择,并期望你的代码在更新过程中使用大部分代码时会中断,因为Node.js本身和大多数模块的开发都是快节奏的.你必须跟上.
把它们放在一起:
正如我所说,我对Node.js的主要生产用途是能够使用socket.io
,因此我没有任何好的生产示例(而且我将要度过一个当之无愧的假期,我不会有时间把一个放在一起).虽然有一些很好的例子:
同样,前进的方式(以及随后的示例)在很大程度上取决于您的最终目标和所选择的技术,但幸运的是,有足够的资源可用于所有可用的选择.大多数模块使用记录良好的GitHub存储库,并包含与最流行模块组合的示例(请参阅/examples/
大多数存储库中似乎存在的目录).
祝好运!(感谢Josh3736纠正我的错误.)
归档时间: |
|
查看次数: |
83850 次 |
最近记录: |