节点js / Express替换LAMP

时间:2016-01-08 20:08:26

标签: php node.js apache express xampp

我需要你的帮助NodeJS忍者。在做了大量的LAMP之后,我开始学习它。我已经在Apache / PHP / MySQL中为小型企业内部网编写了几个系统(包括票务系统,员工安排,生产报告,财务报告等)。

所以,在LAMP世界中,我启动了Apache和MySQL引擎。然后人们转到他们的浏览器,键入服务器IP并根据htdocs中的文件夹浏览我为他们编写的不同系统。

我正在尝试用NodeJS设置相同的东西,Express使用MVC模型(我也是新手)。两个主要问题:

  1. 因为我有几个系统(员工安排,财务 报告等),他们每个人都有自己的中间件用于管理,他们的中间件规则和所有这些?或者它们都只在一个主线程下运行? (负载平衡是另一件事)。
  2. 文件夹布局是什么? XAMPP有htdocs文件夹,文件夹结构就是我想要的。
  3. 根据我在大多数教程中看到的,文件夹布局的选项是:

    -app - 控制器 - 楷模 - 路线 - 意见 -config - 环境 -node_modules -public(我想我实现的系统会在这里吗?) -server.js

    感谢您的帮助,我仍然是一个完整的菜鸟,但我很高兴能够参与其中。

1 个答案:

答案 0 :(得分:1)

我来自LAMP堆栈字,并于2年前移至nodeJS。从那以后发生了很多变化。

您需要了解nodeJS与PHP的相关信息:

  • nodeJS在google的JavaScript V8引擎下运行。
  • nodeJS是单线程的。 PHP是多线程的。这意味着所有连接用户都可以看到对全局变量的任何修改(如果有的话)。
  • 具有express的nodeJS不是MVC,因为MVC是一种架构模式。如果您希望创建文件夹来定义MVC模式或hMVC模式(根据您的需要),则可以。一个名为SAILS的更大框架为您提供原生MVC。
  • 要启动nodeJS项目,您必须cli节点yourApp.js。也就是说,有一种更好的方法可以使用由npm管理的package.json中的脚本或使用其他npm包(如nodemon)来启动项目。没有特定的文件夹来启动像PHP这样的项目,因为PHP由Apache管理,Apache配置为具有html文档的特定文件夹。
  • 要添加的其他内容:
  • Javascript使用EcmaScript作为脚本语言。 ES的第6版于2015年夏季完成,并且所有浏览器仍然没有本机负责。由于nodejs使用谷歌的v8引擎,它仍然基于ES5.1或实验性ES6,在cli中使用--hamrony标志调用节点。由于node5实现了许多ES6功能,但仍然不是全部。
  • NodeJS是异步的,当您来自php word时,异步调用很难学习。你需要很多练习。我建议你去阅读模块模式和揭示模式。

我希望我已经回答了你的问题