javascript - 关于nodejs作为中间层的疑问
阿神
阿神 2017-04-11 11:58:56
[JavaScript讨论组]

初学前端没有多久,想要使用nodejs来写一个项目练手,并且想尽可能模拟一下复杂的系统

假设我有三个独立的部分,

  1. 浏览器端开发能力(css,js)

  2. 服务器端开发能力(nodejs)

  3. 数据库端开发能力(mySQL) (假设使用python)

尽量让这三个部分独立开发各自的部分,所以数据库部分从nodejs里分离出来,nodejs只做服务器实现路由和提供静态文件功能。我觉得这大概是这种模式的优点吧。
这个方案是我在网上查资料时看到别人有用到,nodejs作为中间层,python作为后台数据提供源。
之前我写过的练手的项目,都是后台单一种语言,使用框架整合静态文件,连接数据库完成,比如python的flask,nodejs的express框架**


现在有两个疑惑的地方
1.现在服务端这里nodejs和数据库分离,想问下具体如何实现?比如用户点击某按钮,浏览器端ajax请求nodejs某路由/showdata,那么这个路由应该访问数据库取出data并以json格式返回给浏览器,我不太明白python作为后台,如何提供一个接口给nodejs,nodejs直接访问.py脚本?还是说服务器上运行一个python程序?希望得到一个尽可能详细的答案。
2.这种模式相当于多了一层数据通信,速度会更快吗?后台使用java或者其他语言带来的速度优势,可以弥补这多出来的一层通信带来的延迟吗?或者说仅仅是因为分离便于独立开发?

阿神
阿神

闭关修行中......

全部回复(2)
高洛峰

可能你理解错了,nodejs写服务器端一般情况下是自己直接查询数据库并返回结果.没必要再通过python查找.多一次数据通信(python)一般是用来解耦的,所以一定会影响速度的,有得有失,具体要看你的业务类型。

如果你的流量很大需要用消息队列,那么这时候就可以用python做为消费机来处理用户的请求,nodejs只作为生产机相队列里放请求。

高洛峰

python那一层完全可以删去了,因为node只会比python的性能更强;node作数据库处理也很快;你现在又弄flask又弄express也是会有一些消耗,反而在开发上在资源都画蛇添足了。

node可以做专门的model层也是很容易,要处理数据去调这些类就行;

渲染还是交给react/redux这个模式是大家常用的性能效率最高的;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号