Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在我的项目结构中,我应该在哪里管理服务器端的高级算法/服务?_Angularjs_Node.js_Mongodb_Architecture_Application Design - Fatal编程技术网

Angularjs 在我的项目结构中,我应该在哪里管理服务器端的高级算法/服务?

Angularjs 在我的项目结构中,我应该在哪里管理服务器端的高级算法/服务?,angularjs,node.js,mongodb,architecture,application-design,Angularjs,Node.js,Mongodb,Architecture,Application Design,我正在使用RESTfulAPI处理nodejs、expressjs、mongodb和angular 这是我的项目结构 -- config -- models -- public ---- css ---- js ------ controllers ------ services ---- views -- routes // API route 一切正常,因为我的API调用很简单,大部分逻辑都由angular和服务管理 但现在我必须在服务器端实现高级算法和一些逻辑,我不知道

我正在使用RESTfulAPI处理nodejs、expressjs、mongodb和angular

这是我的项目结构

-- config
-- models
-- public
---- css
---- js
------ controllers
------ services
---- views
-- routes          // API route
一切正常,因为我的API调用很简单,大部分逻辑都由angular和服务管理

但现在我必须在服务器端实现高级算法和一些逻辑,我不知道该在哪里实现


我应该在服务器端添加另一个服务文件夹吗?您将如何管理它?

取决于您的应用程序。因为您的应用程序有一个node.js后端。如果你想实现高级算法,它应该在服务器端。尽可能地保持前端灯光总是明智的,因为您不希望用户等待。

对后端保持一定的重视,但这又取决于您所谈论的应用程序类型。所有的高级算法都应该写在控制器或.js文件中

购物车应用程序的服务器端结构示例:

请注意如何将categories.jsproduct.jsmodels.jsapi.js分解为

总而言之:

如果您的高级算法参考示例购物车应用程序对产品进行定价,那么最好将其写入product.js,如果它与分类或根据用户显示类别相关,那么最好将该逻辑写入category.js。这对于应用程序中的现有开发人员和新开发人员来说都很方便。请记住,有组织的应用程序升级起来很有趣。

是的,我建议您添加一个服务文件夹,其中保存一些业务的服务器端js文件,这些文件可以根据您的业务模型依次组织,例如,您可以使用
services/products.js
来处理
products
collection/table上的一些业务操作

反过来,您可以使用以下方法将这些文件注入控制器/路由

var-productsBiz=require('./services/products.js')

并通过调用其任何公开成员来使用该
productsBiz

顺便说一句,我看到其他一些人通过在db模型上添加自定义函数来完成这些业务,这是一个好主意,但这在逻辑上仅适用于与此特定db模型相关的函数,例如,在保存之前进行一些自定义验证或更改值,但对于与整个应用程序相关的业务,而不是专门针对db模型的业务,例如处理涉及多个db模型的订单,如产品、订单、装运、发票等,在这种情况下,我建议在
服务/*文件*.js
中处理此类业务