大佬教程收集整理的这篇文章主要介绍了node.js – 关于使用NodeJS UI服务器分离前端和后端的问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们团队的文化主要基于完整的框架,如Symfony 2和Ruby on Rails.我们使用模板引擎,但模板大多是由后端开发人员根据设计师的标记编写的.
我们要考虑的步骤是将整体架构分离为后端rest API和NodeJS服务器作为“UI服务器”. NodeJS服务器将处理客户端请求,使用后端API并返回呈现的模板.通过明确指定API和服务的JSON,前端和后端开发人员可以并行工作,减少问题.更多信息:http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/
问题是,我们坚信这种分离对于建筑POV是一件好事,但我们担心这些缺点.我们怀疑它会让事情变得更难.我们团队中没有一个人从未使用过这种架构,因此任何提示或体验都非常有价值.
这值得么?什么时候?为什么?
让我们说你现在拥有的是这样的:
app.get('/',function (req,res) { database.query('SELEct * from user',function (err,result) { res.render(result); }); });
但后来你想这样做:
在UI服务器中:
app.get('/',res) { request('apiServer/user',result) { res.render(result); }); });
在API服务器中:
app.get('/user',result) { res.send(result); }); });
这很好.这将分离前端和后端,但不仅在逻辑上而且在物理上都位于不同的服务器中.
我相信如果他们在同一台服务器下就可以了.而不是上面,只需将它们放在不同的文件中:
在user.js中:
exports.getAll = function (cb) { database.query('SELEct * from user',cb); };
在server.js中:
var user = require('./user'); app.get('/',res) { user.getAll(function (err,result) { res.render(result); }); });
为什么这比你的解决方案更好?因为它分离触摸数据库,并渲染数据,而且它没有额外的http往返.
遵循MVC模式,将类似user.js的文件放在models目录中,将server.js之类的文件放在控制器目录中.您确保为前端开发人员记录两者.
现在,如果您的前端开发人员只是要进行UI更改,他们只会触摸HTML文件.如果他们想要添加包含数据的部分,他们将阅读后端文档,他们将添加对模型的另一个调用,以获取它们在呈现HTML的相应控制器中的数据.
只要确保你将标准化所有东西,所以当新的东西出现时,团队中的程序员可以以某种方式预测界面的方式,使用一个好的ORM来完成数据库调用.如果您不选择使用ORM,那么请进行良好的抽象.
因此,您在层中的应用程序可以是这样的:
数据库 – > ORM – >型号 – >控制器 – >视图(HTML文件)
现在是前端开发人员,右上图就是上图.如果它被很好地抽象出来,他们只需要知道左侧记录的API,但他们不需要知道它是如何工作的.任何在控制器上工作的人,只需要知道他们左侧的文档API,即Models.您可以将其一直继续到左侧的数据库.
然后在每一层上,您可以将单元测试和集成测试一直到前面,以确保接口一致.
如果你的团队规模很大,拥有庞大的代码库,请确保始终保持接口的向后兼容性,但在日志中提醒已弃用的东西.永远不要试图打破任何东西
以上是大佬教程为你收集整理的node.js – 关于使用NodeJS UI服务器分离前端和后端的问题全部内容,希望文章能够帮你解决node.js – 关于使用NodeJS UI服务器分离前端和后端的问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。