vue使用neovis操作neo4j圖形數(shù)據(jù)庫(kù)及優(yōu)缺點(diǎn)
1.前言:
由于項(xiàng)目需要在前端展示關(guān)系圖,常規(guī)的做法是,后端操作數(shù)據(jù)庫(kù)返回Json數(shù)據(jù),前端使用d3或者echarts進(jìn)行展示,奈何因?yàn)楹蠖瞬唤o力(說(shuō)是無(wú)法獲取最核心的關(guān)系id),所以前端借助neovis.js插件直接操作數(shù)據(jù)庫(kù),進(jìn)行展示。
2.優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
相比于常規(guī)做法,簡(jiǎn)單方便直接,而且neo4j數(shù)據(jù)庫(kù)在處理復(fù)雜關(guān)系數(shù)據(jù)方面有優(yōu)勢(shì)。
缺點(diǎn):
暴露賬號(hào)密碼,通過(guò)f12控制臺(tái)直接就能看到數(shù)據(jù)的賬號(hào)和密碼。對(duì)此的解決方法是,使用企業(yè)版neo4j注冊(cè)只讀賬號(hào),或者后端直接限制數(shù)據(jù)庫(kù)查詢語(yǔ)言,既只讓這個(gè)賬號(hào)有讀取而沒(méi)有修改的權(quán)力。 (無(wú)奈啊,前端操作數(shù)據(jù)庫(kù)就是不安全-.-)
3.如何使用
鄭重提醒
static文件夾放在public目錄下,新建static目錄
導(dǎo)入的時(shí)候可以直接/static
在做這個(gè)地方時(shí),因?yàn)槭窍氚阉鳛橐粋€(gè)組件使用,可以吧vue文件注冊(cè)全局組件,也可以使用iframe標(biāo)簽嵌入,各有優(yōu)缺點(diǎn)。
如果是irfame嵌入的話,html文件一定放在public文件夾里面的static下,src為:/static/xxx.html
(1)首先,現(xiàn)在git上下載Neovis.js https://github.com/neo4j-contrib/neovis.js
(2)將dist目錄下的neovis.js以及neovis.js.map文件復(fù)制出來(lái)
(3)粘貼到你的vue項(xiàng)目的static文件夾下
(4)然后在index.html目錄下引入neovis.js,jquery沒(méi)有引入的話,也需要引入,他會(huì)用到j(luò)query
(5)然后就是neovis的vue頁(yè)面,里面一共四個(gè)地方需要修改,已經(jīng)標(biāo)注。其他的直接復(fù)制就行
<template> <div class="myDiv"> <div id="viz"></div> Cypher query: <textarea rows="4" cols=50 id="cypher"></textarea><br> <input type="submit" value="Submit" id="reload" @click="submit"> <input type="submit" value="Stabilize" id="stabilize" @click="stabilize"> </div> </template> <script> export default { name: '', components: {}, props: {}, data() { return { viz: {} //定義一個(gè)viz對(duì)象 } }, mounted() { this.draw() }, //渲染 methods: { submit() { var cypher = $("#cypher").val(); if (cypher.length > 3) { this.viz.renderWithCypher(cypher); } else { console.log("reload"); this.viz.reload(); } }, stabilize() { this.viz.stabilize(); draw() { var config = { container_id: "viz", server_url: "后端neo4j的地址", server_user: "neo4j用戶名,一般是neo4j", server_password: "neo4j密碼", labels: { //"Character": "name", "Character": { "caption": "name", "size": "pagerank", "community": "community" //"sizeCypher": "MATCH (n) WHERE id(n) = {id} MATCH (n)-[r]-() RETURN sum(r.weight) AS c" } }, relationships: { "INTERACTS": { "thickness": "weight", "caption": false //查詢節(jié)點(diǎn)的語(yǔ)句,寫成你們的 initial_cypher: "match (n)-[r]->(m) return n,r,m;" }; this.viz = new NeoVis.default(config); this.viz.render(); console.log(this.viz); } </script> <style lang="less" scoped> .myDiv { width: 800px; height: 800px; textarea { border: 1px solid lightgray; margin: 5px; border-radius: 5px; #viz { width: 100%; height: 80%; border: 1px solid #f1f3f4; font: 22pt arial; input { border: 1px solid #ccc; </style>
到此這篇關(guān)于vue使用neovis操作neo4j圖形數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)vue neo4j圖形數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用vue-cli+webpack搭建vue開發(fā)環(huán)境的方法
這篇文章主要介紹了使用vue-cli+webpack搭建vue開發(fā)環(huán)境的方法,需要的朋友可以參考下2017-12-12vue el-table實(shí)現(xiàn)自定義表頭
這篇文章主要為大家詳細(xì)介紹了vue el-table實(shí)現(xiàn)自定義表頭,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12淺析Vue.js中v-bind v-model的使用和區(qū)別
v-model 指令在表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定,所謂雙向綁定。這篇文章主要介紹了Vue.js中v-bind v-model的使用和區(qū)別,需要的朋友可以參考下2018-12-12vue中導(dǎo)出Excel表格的實(shí)現(xiàn)代碼
項(xiàng)目中我們可能會(huì)碰到導(dǎo)出Excel文件的需求,這篇文章主要介紹了vue中導(dǎo)出Excel表格的實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-10-10使用VitePress搭建及部署vue組件庫(kù)文檔的示例詳解
這篇文章主要介紹了使用VitePress搭建及部署vue組件庫(kù)文檔,本文以element-plus作為示例來(lái)搭建一個(gè)文檔,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08解決vue頁(yè)面刷新或者后退參數(shù)丟失的問(wèn)題
下面小編就為大家分享一篇解決vue頁(yè)面刷新或者后退參數(shù)丟失的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Win11&Win10配置vue開發(fā)環(huán)境詳細(xì)圖文教程
目前前端三大框架(vue、react、angular)中vue是前端工程師經(jīng)常使用的,在使用之前需要搭建vue開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于Win11&Win10配置vue開發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下2024-02-02vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果
這篇文章主要介紹了vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07ElementUI Tree 樹形控件的使用并給節(jié)點(diǎn)添加圖標(biāo)
這篇文章主要介紹了ElementUI Tree 樹形控件的使用并給節(jié)點(diǎn)添加圖標(biāo),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02vue3編譯報(bào)錯(cuò)ESLint:defineProps is not defined&nbs
這篇文章主要介紹了vue3編譯報(bào)錯(cuò)ESLint:defineProps is not defined no-undef的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03