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的数据