2 个回答

可行的办法倒是有,但都要求数据库是你自己的,而且安全去喂狗

浏览器JavaScript不能直接连接数据库,最根本的原因是宿主环境是浏览器,而浏览器一般情况下不会提供TCP Socket直接给JavaScript用,太危险了。最接近的Websocket是应用层协议,SQL服务器根本不会认。有没有办法搞到TCP Socket呢?还真有。

  1. Chrome Apps:算是Chrome Extension的加强版,本来设计是给Chrome OS用的,后来开了口子给其他系统用,最近又反悔了,从商店下架了所有Apps,但API还是没删掉。作为Chrome OS的Native Apps替代品,自然是有完整的TCP Socket可以用的,chrome.sockets.tcp可以了解一下。
  2. Extension + Native:浏览器不给TCP Socket,但是允许Extension跟原生本地程序通信,原生本地程序又可以随便开TCP Socket,那就简单了。本地搭一个node服务器其实很快,之前学过的话一个小时就能完事(而且写JavaScript的迟早都要学node不是么),比去写Chrome Apps还快,毕竟你不用从TCP开始从头开发,npm上一大堆数据库的包可以用。

但是以上方式都要求你的数据库能从公网直接访问。考虑到目前国内的网络环境,题主应该是没有自己的IP的,那数据库就会暴露给一整个网段,想想都觉得菊花不保。

补充一下,上面题主的评论里提到了JackDB,我觉得很神奇,于是注册了一下,然后发现它只不过是个网站的快捷方式……那个网站的工作方式也是第三方转发SQL请求,要把密码直接交给网站,真是简单粗暴……

clipboard.png

前端 的js肯定不能直接操作数据库,但你可以通过ajax把数据发给接口,通过接口把数据写入数据库。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题