Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。