初学前端没有多久,想要使用nodejs来写一个项目练手,并且想尽可能模拟一下复杂的系统
假设我有三个独立的部分,
浏览器端开发能力(css,js)
服务器端开发能力(nodejs)
数据库端开发能力(mySQL) (假设使用python)
尽量让这三个部分独立开发各自的部分,所以数据库部分从nodejs里分离出来,nodejs只做服务器实现路由和提供静态文件功能。我觉得这大概是这种模式的优点吧。
这个方案是我在网上查资料时看到别人有用到,nodejs作为中间层,python作为后台数据提供源。
之前我写过的练手的项目,都是后台单一种语言,使用框架整合静态文件,连接数据库完成,比如python的flask,nodejs的express框架**
现在有两个疑惑的地方
1.现在服务端这里nodejs和数据库分离,想问下具体如何实现?比如用户点击某按钮,浏览器端ajax请求nodejs某路由/showdata,那么这个路由应该访问数据库取出data并以json格式返回给浏览器,我不太明白python作为后台,如何提供一个接口给nodejs,nodejs直接访问.py脚本?还是说服务器上运行一个python程序?希望得到一个尽可能详细的答案。
2.这种模式相当于多了一层数据通信,速度会更快吗?后台使用java或者其他语言带来的速度优势,可以弥补这多出来的一层通信带来的延迟吗?或者说仅仅是因为分离便于独立开发?
python提供http接口给nodejs用。
速度会慢一丢丢,但是职责会更清晰。
这样做的好处是
1.一个Server端(Python)可以服务于多个Client端(Node|iOS|Android)。
2.某一端可以随意换实现代码,只要保证http接口一样,比如后端某天想换java,写好接口测试直接换,都不用通知前端童鞋。
可以这样架构
Python负责数据存取。
Node负责页面渲染,用户权限验证。