1. json-server使用 get方法篇
1:在磁碟中找個專門的位置 新建文件夾 如:mock_excise
2:創建json文件(我是用notepad++創建的 文本文件也是可以的,但是涉及到中文會亂碼)
3:在當前位置進入命令行
4:命令行中輸入 json-server --watch 文件名稱
如圖可看到:獲取資源的地址 以及 資源伺服器也就是本機的ip:port
5:在瀏覽器 輸入獲取資源的地址 http://localhost:3000/fundInfo?fundCode=444444.OF
2. 如何在命令行中列印格式化的json和xml數據
如何在命令行中列印格式化的json和xml數據
雖然現在JSON以其輕量級,易解析等諸多優點大行其道,但也有一些系統的API返回的數據是XML格式的,python沒有現成的mole像格式化json一樣格式化xml。
當然,你可以用lxml自己寫一個,這也很簡單。
(如果你真的寫了,那也請你不吝分享出來…LOL)。雖然沒有現成的python mole,但是有現成的工具,那就是xmllint。
關於xmllint的介紹自己看doc就是了,他是libxml2的一部分,所以在大多數的*nix系統上都是默認自帶的。用起來也很簡單
3. 有命令行工具能格式化json嗎
要看語言,每個語言有不同的處理工具類. 本類就是沒沖突的. JSON有 JSON對象 和 JSON數組. 也就是構成一個JSON對象, key必須是string,但value可以是JSON數組和JSON對象, 也就可以二維三維四維.... 我是Java, 如果是Java我就會利用HashMap List 等...
4. 如何在linux中使用命令行解析json文檔
開始 - 運行-CMD 在命令提示符下,輸入(引號裡面的內容) 「副教授的exe = exefile」。 >然後輸入: 「。assoc命令將DLL = dllfile」輸入 然後輸入: 「。assoc命令LNK = lnkfile」輸入 記事本
5. 互動式命令行美化工具——inquirer.js
前言: 現在前端寫項目估計都是使用 NodeJs 來構建,一般在安裝 npm 包的時候,我們會對項目進行初始化,這是輸入命令: npm init 或 npm init -y 。接下來就是幾個交互命令,輸入完成就會創建一個依賴文件: package.json 。
但如果想自己做一個腳手架或者在某些時候在 CMD 窗口進行交互,這個時候就可以使用 inquirer.js 。
首先 npm init 初始化一個文件夾,來測試這個庫,然後安裝包:
再在文件夾裡面新建一個 app.js ,接下來的所有測試均在這個文件裡面。
運行測試結果:
程序運行結果:
接下來如果你想要一百個輸入那?肯定是。。。(情商)
看看 validate 是啥樣?
測試結果:
看看三種不同輸入結果有啥變化?
list 一般配合 choices 使用:
查看動圖效果:
list 改成 rawlist
自己可以試試按下 h/H 回車的頁面是啥。
如果不想自定義還可以:
使用首選編輯器打開一個臨時文件,用戶退出編輯器後,將讀取臨時文件的內容。首選編輯器可以指定。
用來更改顯示行數只對 list, rawList, expand 或 checkbox 有效。
只有一行,通過上下方向鍵來選擇:
2019年10月14日23:09:42
6. json2srt:剪映字幕 json 轉 srt
這是一個命令行 js 程序,需要安裝 node
Windows 平台:剪映 1.2.1 測試通過
macOS:剪映 1.3.1 測試通過
此工具需要帶一個參數,即 json 文件所處的目錄名稱。
Windows 上,剪映字幕的工作目錄是:USER_HOME + '\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft';
macOS 上,剪映字幕的工作目錄是:USER_HOME + '/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/'
在命令行上,執行:
如果不知道「json 文件所在的目錄名」,可以不帶參數執行:
命令會提示你到哪個目錄下去找。
生成的 srt 文件,和 json 文件在同一個目錄。
命令執行成功時,會把生成的 srt 文件路徑列印在屏幕上。
7. json-server增刪改查排序小結
json-server 可以用於模擬請求 ----Restful風格
查詢 get params:{}
增加 post data:{}
刪除 delete
修改 put /patch data:{}
使用步驟
1-全局安裝 npm i json-server -g / yarn global add json-server 相當於安裝了一個命令行工具
2-准備json文件
{"list":[{"name":"斑老師","flag":true,"id":6},{"name":"貓咪老師","flag":true,"id":8}]}
3-在當前json文件下運行 json-server data.json 開啟本地服務
開啟服務
4-看到上圖表示服務開啟成功 http://localhost:3000/list
增刪改查----axios
查詢以axios為例 請求方式為get
1-查詢全部數據 並且按照id進行排序 排序方式為降序排序
axios({method:"get",url:"http://localhost:3000/list?_sort=id&_order=desc"}).then(res=>{this.list=res.data;}).catch(err=>{console.log(err);})
2-查詢指定id的數據 http://localhost:3000/list/6
axios({method:"get",url:"http://localhost:3000/list/6"}).then(res=>{this.list=res.data;}).catch(err=>{console.log(err);})
3-增加數據post
axios({method:"post",url:"http://localhost:3000/list",data:{name:todoName,flag:false}}).then(res=>{this.getData()}).catch(err=>{console.log(err);})
4-刪除指定id的數據
axios({method:"delete",url:`http://localhost:3000/list/${id}`,}).then(res=>{this.getData();}).catch(err=>{console.log(err);})
url:`http://localhost:3000/list/${id}`,這個位置用到了es6的模板字元串
5-修改數據
屏幕快照 2019-07-01 17.42.19.png
axios({method:"patch",url:`http://localhost:3000/list/${id}`,data:{flag}}).then(res=>{this.getData();}).catch(err=>{console.log(err);})
補充點:put和patch的區別
put和patch都可以進行修改操作
區別
put 方式如果沒有將所有屬性都寫完整 沒寫的屬性會丟失
patch方式沒修改的屬性不寫默認為之前的值
舉例:{id:1,name:"zs",age:18}
修改age=20
put:{id:1,age:20}
patch:{id:1,name:"zs",age:20}
鏈接:https://www.jianshu.com/p/2e4027bad282
8. live-server 命令行用法
來自命令行的用法
live-server在您的項目目錄中發出該命令。或者,您可以添加路徑以充當命令行參數。
這將自動啟動默認瀏覽器。當您對任何文件進行更改時,瀏覽器將重新載入頁面 - 除非它是一個CSS文件,在這種情況下,應用這些更改時無需重新載入。
命令行參數:
--port=NUMBER - 選擇要使用的埠,默認值:PORT env var或8080
--host=ADDRESS - 選擇要綁定的主機地址,默認值:IP env var或0.0.0.0(「任意地址」)
--no-browser - 禁止自動Web瀏覽器啟動
--browser=BROWSER - 指定使用瀏覽器而不是系統默認值
--quiet | -q - 禁止記錄
--verbose | -V - 更多日誌記錄(記錄所有請求,顯示所有偵聽的IPv4介面等)
--open=PATH - 啟動瀏覽器到PATH而不是伺服器root
--watch=PATH - 用逗號分隔的路徑來專門監視變化(默認值:觀看所有內容)
--ignore=PATH- 要忽略的逗號分隔的路徑字元串( anymatch -compatible definition)
--ignorePattern=RGXP-文件的正則表達式忽略(即.*\.jade)( 不推薦使用 贊成--ignore)
--middleware=PATH - 導出要添加的中間件功能的.js文件的路徑; 可以是沒有路徑的名稱,也可以是引用middleware文件夾中捆綁的中間件的擴展名
--entry-file=PATH - 提供此文件(伺服器根目錄)代替丟失的文件(對單頁應用程序有用)
--mount=ROUTE:PATH - 在定義的路線下提供路徑內容(可能有多個定義)
--spa - 將請求從/ abc轉換為/#/ abc(適用於單頁面應用)
--wait=MILLISECONDS - (默認100ms)等待所有更改,然後重新載入
--htpasswd=PATH - 啟用期待位於PATH的htpasswd文件的http-auth
--cors - 為任何來源啟用CORS(反映請求源,支持憑證的請求)
--https=PATH - 到HTTPS配置模塊的路徑
--proxy=ROUTE:URL - 代理ROUTE到URL的所有請求
--help | -h - 顯示簡潔的使用提示並退出
--version | -v - 顯示版本並退出
默認選項:
如果文件~/.live-server.json存在,它將被載入並在命令行中用作live-server的默認選項。有關選項名稱,請參閱「節點的使用情況」。
9. 手把手教你使用nodejs編寫cli(命令行)
前端日常開發中,會遇見各種各樣的cli,比如一行命令幫你打包的webpack,一行命令幫你生成vue項目模板的vue-cli,還有創建react項目的create-react-app等等等等。這些工具極大地方便了我們的日常工作,讓計算機自己去干繁瑣的工作,而我們,就可以節省出大量的時間用於學習、交流、開發、 逛steam 。
但是有時候一些十分特別的需求,我們是找不到適合的cli工具去做的。比如說,你的項目十分龐大,你給項目添加一個新的路由,要經過 創建目錄 -> 創建.vue文件 -> 更新vue-router的路由列表 這一趟流程,就算快捷鍵創建目錄文件用得再熟悉,也比不過你一行命令來得快,特別是路由目錄嵌套深,.vue文件初始化模板復雜的時候。
所以呢,何不為自己項目寫一個cli?就專門做這些繁瑣的活?
nodejs的cli,本質就是跑node腳本嘛,基本上每位前端er都會:
然後命令行調用
可以做得更逼真一點,我們在package.json裡面的scripts欄位上添加一下腳本名:
然後命令行調用:
但是,看到這里你肯定會說,人家webpack還有vue-cli都是「有名字」的!什麼 vue-cli init app 、 webpack -p 的,多漂亮,看看這個命令行, node index.js ,還 npm run hello ,誰不會啊,丑不拉幾的,怕又不是來水文章的哦?差評!!
別急啊各位大人,接下來就說說,如何給這個node腳本起個名字。
姑且,先把這個cli的名字命名為 hello-cli ,就是我們能夠在命令行裡面,輸入 hello-cli ,然後它就列印一句 hello world ,沒有 node 也沒有 npm ,就是:
這樣,你的第一個cli腳本就成功安裝了,可以在命令行裡面,直接敲你的cli名字,看看結果輸出吧。
另外,如果你僅希望你的cli腳本僅在項目里執行,則需要在你項目裡面新建一個目錄,重復上述的操作,只是在第三步的時候,不要llink到全局裡面去,而是使用 npm i -D file:<你的腳本cli目錄路徑> ,把它當成項目的依賴安裝到node_moles裡面去,如果安裝成功,那麼在項目的package.json你會看到多了一條依賴,這條依賴的值不是版本號,而是你腳本的路徑。然後在node_moles裡面會有一個.bin目錄,裡面就存放著你的可執行文件。
當然,這樣安裝的cli腳本,必須在項目的package.json的scripts欄位上聲明腳本命令,然後通過 npm run 的方式執行。
哦?這樣子使用的話不就回到最最最開始的時候那種原始的 npm run hello 一樣么。
是的,但是有質的區別。使用 node index.js 這種方式調用的話固然簡單靈活,但是嚴重依賴腳本路徑,一旦目錄結構發生變動,寫在scripts的命令就要更改一次;但是使用npm安裝之後,本地的cli腳本就被拉到node_moles裡面,目錄結構變動對其影響不大。其次是不利於分享與發布,如果你想把你的cli腳本發布出去,那麼有一個好聽響亮的名字,比起在說明文檔裡面告訴使用者如何找到你的腳本路徑再用node執行它,簡直好上那麼一萬倍不是么?
這里也給我們提供了一個cli開發流程思路:
名字有了,輸出也有了,看看我們跟那些大名鼎鼎的cli工具,在形式上還差點啥?對了,人家可以支持不同參數選項的,還可以根據輸入的不同,產生不同的結果。
這樣吧,我們給這個cli加一個功能,既然叫 hello-cli ,那不能只會 hello world 吧,必須要見誰就說 hello 才行:
雖然這個功能很簡單,但是至少也是實現了「根據輸入的不同,產生不同結果」的效果。
命令行上的參數,可以通過 process 這個變數獲取, process 是一個全局對象而不是一個包,不需要通過 require 引入。通過 process 這個對象我們可以拿到當前腳本執行環境等一系列信息,其中就包括命令行的輸入情況,這個信息,保存在 process.argv 這個屬性里。我們可以列印一下:
列印結果:
可以看出,argv是個數組,前兩位是固定的,分別是node程序的路徑和腳本存放的位置,從第三位開始才是額外輸入的內容。那麼實現上面的功能就很簡單了,只要讀取argv數組的第三位,然後輸出出來就可以了。
npm社區中也有一些優秀的命令行參數解析包,比如 yargs ,tj的 commander.js 等等
如果你想使用比較復雜的參數或者命令,建議還是用第三方包比較好,手寫解析太耗精力了。
現在,你可以自由自在的寫你自己的cli腳本了。
如果你希望寫一個項目打完包自動推上git的cli,或者自動從git倉庫裡面拉取項目啟動模板,那麼,你需要通過node的 child_process 模塊開啟子進程,在子進程內調用git命令:
不僅是git命令,包括系統命令、其他cli命令都可以在這里執行。特別是系統命令,使用系統命令對文件目錄進行操作,效率比fs高到不知道哪裡去了。
社區上也有一些不錯的包,比如阮一峰老師推薦的 shelljs
如果你不那麼希望你的cli用起來那麼「硬核」,希望更人性化一點,比如提供一些友好的輸入、提示啊,給你的輸出加點顏色區分重點啊,寫個簡單的進度條啊等等,那麼你就需要美化一下你的輸出了。
除了顏色這部分,不使用第三方包實現起來非常繁瑣復雜,其他的功能,都可以試試自己寫。
顏色部分使用了第三方包 colors ,這里就不演示了。
其他都是由nodejs自帶的 readline 模塊實現的。
繪制的思路跟canvas繪制動畫一樣,只不過canvas是清除畫布,而命令行這里是通過 readline.clearScreenDown 清除輸出。
這樣,一個簡易的,人性化的,帶點點進度條動畫的命令行cli工具就寫好了,你也可以發揮你的想像力,去寫一些更有趣的效果出來。
畢竟我們前端,有瀏覽器我們可以寫動畫,沒了瀏覽器我們一樣可以寫動畫。
10. 搭建一台本地json伺服器
1、全局安裝json-server(此時不管在哪個目錄下面都可以)
2、cd至當前的項目文件夾所在的位置,新建一個文件夾jsonserver
3、在當前目錄下運行npm init
4、再次安裝運行 nom install json-server --save
5、此時的目錄結構
--jsonserver
--node_moies
--package-lock.json
--package.json
6、打開package.json文件更改這里的內容為:json-server --watch 自定義一個json文件
7、在文件夾下新建db.json
8、書寫db.json中的內容
9、保存後在命令行輸入 npm run json:server
10、此時在瀏覽器中輸入localhost:3000即可獲取json:server的數據