node.js 调用 shelljs 接收 stdin 输入输出

#node.js 调用 shell 脚本 现在能见到的有很多很多种方法 今天和大家分享的是 shelljs shelljs 安装 npm install shelljs --save shelljs 使用 exec 方法 var shell = require("shelljs"); // exec 方法 shell.exec("echo hello world!"); shelljs 使用全局模式 require('shelljs/global'); mkdir('-p', '/var/log'); cp('-R', '/var/log/*', '/home/zhang

mysql 彻底解决中文乱码的问题

mysql 中常常出现对中文支持不友好的情况 常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中一共涉及到哪些字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的 character-set-database:数据库字符集 character-set-table:数据库表字符集 一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-

mysql ,mongodb 针对坐标值按照距离远近排序

针对mysql 和 mongodb 不同数据库下坐标转换距离排序 mysql //坐标转换因子.是需要计算的. xFactor = cityObject.xFactor; yFactor = cityObject.yFactor; //地区坐标 latitude = location.latitude; longitude = location.longitude; //组合sql语句 let sql = [ 'SELECT *, ', ' sqrt(pow((latitude - ' + latitude + ') * ' + yFactor + ',2) + ', ' p

App质量管理优化方案 - 团队协作,流程控制

2016年5月27日,有幸被邀请参与云测主办的App质量管理优化方案 今天准备临时整理一下,分享出来 针对App开发过程中质量管理优化,一介布衣是以一个开发者的视角去看待整个流程,力求在需求开发,评审,研发,测试,发版等各个环节去控制自己的节奏,尽量避免在各团队衔接或者流程控制上影响app质量. #团队目标 如何在规定时间内开发出符合质量要求的产品 代码质量把关 代码review 作为一种纯手工创造性劳动,每个工程师去 review 一下自己的代码,并不是"秀",起码对方可以知道对方在干什么,而且还可以用自己的思维模式去判断对方的代码实现是不是最优,有没有改进的

搭建自己的邮件服务器(postfix devocot cyrus-sasl) centos7 系统下配置

网上用了很多家企业邮箱 免费的不好用,或者收费的价格太贵....那干脆自己搭建邮件服务器了. 搭建邮件服务器目前最流行的应该是 postfix + devocot 组件. 而系统自带的 sendmail 配置起来相当困难,所以我压根就没有去试.并且在安装前直接卸载了 sendmail . 第一步 设置域名MX 解析 首先要有指定 ip 的 A 记录解析 @ A 111.111.111.111 需要有 mail 二级域名的 A 记录解析 mail A 111.111.111.111 MX 记录解析 @ MX mail.yij

mongodb 创建用户 mongoose 指定用户连接数据库

说实话,之前玩 mongodb 都是裸奔,都不需要用户名和密码直接连接 mongodb. 但是,正在在使用 mongodb 来开发的时候,还是要设置一个专属的账号,密码来连接数据库. 如何在mongodb 中创建一个用户 Mac下使用 brew 安装mongodb 请点击左侧链接打开. shell 下连接 mongodb ➜ /Users/zhangzhi >mongo MongoDB shell version: 3.2.0 connecting to: test 默认连接到 test 数据库. 切换数据库到 admin > show databases admi

centOS 下搭建 phpmyAdmin 服务

很久没来了,最近太忙(当然是借口~~) 今天和大家分享如何安装使用 phpMyAdmin 服务来管理mysql数据库. 首先你需要安装mysql (废话) yum -y install mysql 下载 phpMyAdmin 比如 我们下载了 phpMyAdmin-4.0.4.1-all-languages.zip [root@mail ~]# unzip phpMyAdmin-4.0.4.1-all-languages.zip [root@mail ~]# mv phpMyAdmin-4.0.4.1-all-languages /var/www/html/ [root@mail ~

centOS 下升级php 5.3 到 5.4

在CentOS 系统下,把 php 5.3 升级到 5.4 版本 查看你的版本 [root@10-10-126-106 ~]# php -v PHP 5.4.45 (cli) (built: Oct 16 2015 11:02:47) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies 具体步骤 查看之前 php 版本: [root@localhost ~]# rpm -qa |grep php* php-5.3.3-46.el6_6.

markdown基本语法介绍

Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英語:John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。 这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。[维基百科] markdown可以让你专心写作而摆脱排版的困扰. 一些常用语法要花几分钟时间来记住. 标题 一个#表示一级标题, 几个#号对应表示几级标题, 最多支持六级标题. 注:标准语法一般在#后跟个空格再写文字 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 效果: 一级标题

sed 按日期过滤 nginx log 日志

针对 Linux 系统下 nginx 访问日志查询. 我们常常会直接上服务器使用 cat ,head , tail 等命令来查看. 但是面对几个G ,甚至几十个G 的log日志文件时,你想定位到多少行到多少行,谈何容易! 所以,今天和大家分享一个按日期提取 log 日志的方法. sed 命令简介 sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,基本上就是玩正则模式匹配,相当的hacker. sed 参数简介 -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过

JavaScript 代码规范与约束

在开发过程中,团队代码风格统一,会让我妈避免不必要的错误和低级 Bug、控制代码质量,这样我们最好会预定一套编码规范. 检验JavaScript编码规范的工具有哪些? jslint jshint ESLint 下面简单看下这3个检验工具之间的差别: jslint jslint 的作者是 Douglas Crockford(《JavaScript: The Good Parts》的作者)。 Douglas Crockford 制订了一套 JavaScript 编码规则, JSLint 通过检查和分析 JavaScript 代码, 将任何违反规则的代码警告给开发者, 且无法通过配置关闭一

请珍惜优秀的免费资源,守住自己的道德底线.

为了发这篇文章,我挣扎了好久,至少2年前我就想分享一篇关于vpn的文章,最后咬咬牙,跺跺脚忍了. 最近,一位朋友真好也遇到vpn连接的一些不如意, 借着新年之际,我非常想分享下如何免费给自己搭建一个vpn, 让需要跨栏的人顺利看看外面的世界. 我迟疑了很久,该不该发这样的文章, 一旦发出去,很多优秀免费资源马上会被滥用,直接的原因就是关停,谁都用不成. 内心的挣扎,我最后还是说服了自己,我觉得来我博客的应该都是各类攻城狮, 退一万步讲,大不了年后我删除了这篇文章. 所以,标题,标签,配图 我开始很详细的写一篇如何一步一步搭建. 大概完成40% 的时候,我感觉这篇文章还是不要发出去好, 为

npm 不加sudo 执行失败

随笔记录一个小问题, npm 安装开源包的时候,你可能碰到这样的情况,无写入权限. ***必须加上 sudo *** 才能执行成功. 无 sudo ➜ /Users/zhangzhi >npm install -g jslint npm ERR! tar.unpack untar error /Users/zhangzhi/.npm/jslint/0.9.6/package.tgz npm ERR! Darwin 15.3.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "jsli

gitlab 如何验证安装服务是否正确启动运行

gitlab 安装完以后,总是会多多少少报出一些小问题. 之前有一篇关于 如何安装 gitlab 的文章 linux 上通过gitlab 搭建自己的git服务器 今天简要和大家分享下安装 gitlab 后,如何查看服务是否正常启动运行. #如何排查 如果是 Gitlab 3.1 以后的版本 sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production 运行上面指令查看各项指标,服务是否正常启动,文件读写权限等. 如果是 Gitlab 4.0 以后的版本 sudo -u gitlab -H bu

node.js Sails 学习文档 model 篇

sails安装 npm install -g sails sails创建新项目 sails new test sails目录结构 test api controllers(控制器相关,业务逻辑) models(模块开发) policies(用于路由过滤) responses(定制所需的响应:如404 res.notFound()) services(定制一些常用的工具类–全局的) assets(静态资源文件) images js styles templates favicon.ico config(整个

centOS6.5 快速安装部署 gitLab

在程序开发过程中 git 已经成为最受欢迎的代码托管工具,从此工具上衍生出来了大名鼎鼎的开源平台 github . 它给我们代码管理带来方便快捷,但是在 github 上,只有开源的公开项目才可以免费试用,如果公司的私有项目,必须付费购买,而且价格还不低.所以今天这篇文章和大家分享下在 centOS 6.5 环境下,傻瓜式,简洁快速部署安装 gitlab 服务. 什么是gitlab GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注

Node.js 中实现的ES6 新特性

ES6 的发布,给 JavaScript 开发带来了很多实实在在的特性,那么对于 node.js 的开发者而言,V8对于ES6新特性的支持有哪些? 如何查看node 的新特性 process.versions ➜ /Users/zhangzhi >node process.versions { http_parser: '2.5.0', node: '4.2.4', v8: '4.5.103.35', uv: '1.7.5', zlib: '1.2.8', ares: '1.10.1-DEV', icu: '56.1', modules: '4

通过 pm2 部署 node.js 项目

我们如何用 pm2 把 node.js项目 部署到服务器 安装 pm2 全局安装 ➜ /Users/zhangzhi >sudo npm install -g pm2 初始化 pm2 配置文件 ➜ /Users/zhangzhi >pm2 ecosystem ------------- Looking for a complete monitoring and management tool for PM2? Check out: _

ESLint 团队协作规范使用

Lint 工具 使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量 . WebStorm 等开发环境已经支持这些工具,使用起来很顺手. 然而,在使用 React JSX 语法时,却遇到了问题:JSHint 不支持 JSX 语法 ESLint 简介 ESLint 由 JavaScript 红宝书 作者 Nicholas C. Zakas 编写, 2013 年发布第一个版本. NCZ 的初衷不是重复造一个轮子,而是在实际需求得不到 JSHint 团队响应 的情况下做出的选择:以可扩展、每条规则独立、不内置编码风格为理念编写一个 lint 工具. ESLint

ES6 新增了哪些新特性 (二)

关于 ES6规范及新特性 对象字面量申明增强 ES6 之前,申明对象字面量方式其实就是直接定义一个json对象.存在的仅仅是对象的属性和值. ES6 之后,对象字面量被扩展支持直接设置原型, 简洁属性赋值和方法, 超类调用, 这也让对象字面量和类声明的关系更密切,并让基于对象的设计更便利 ES6之前: var obj = { __proto__: theProtoObj, // 下面的写法不会设置内部原型 '__proto__': theProtoObj, // 方法 toString() { // 调用父对象的方法 return "d "

angular.js 中 父级和 子集 controller 之间的通讯

在同个 angular.js 应用的控制器之间进行通信可以有很多种不同的方式,本文主要讲两种: 基于scope继承的方式 基于event传播的方式 基于scope继承的方式 最简单的让控制器之间进行通信的方法是通过scope的继承。假设有两个控制器Parent、Child,Child 在 Parent 内,那Child 可以称为子控制器,它将继承父控制器Parent的scope。这样,Child就可以访问到Parent的scope中的所有函数和变量了。 需要注意的是,由于scope的继承也是基于Js的原型继承,如果变量是基本类型的,那在Child中的修改(写),有可能会导致Parent中的

ES6 新增了哪些新特性 (一)

ES6是对 javascript 语言的一次重大更新,是自从2009年ES5标准化后的第一次重大更新 主要的JavaScript引擎正在逐步实现这些特性,点击这里查看浏览器的兼容情况 这次更新涉及到的新特性还比较多,我们分几个部分来简单介绍 ES6 中模块导入 类似下面的语法: import fs from 'fs'; import path from 'path'; 这里的 import是在编译时决定的( 即在脚本开始执行之前 ) 事实上,各个模块之间的依赖关系图所涉及的所有imports和exports都是在执行之前已经决定 如果我们的代码中需要按需加载的需求,即在运行时才进行模

HTML5 video 元素及获取视频播放事件

Html5 的扩展极大的方便了web开发. 比如视频播放,在Html5 之前,全部依赖 flash / 银光 这样的插件. video 元素 Html5 的 video 元素扩展出来非常多的方法,属性,事件 等. 我们可以直接在此控件上播放,暂停 等操作. 现在,Safari 3以上、Firefox 4以上、Opera 10以上,以及Chrome 3.0以上的浏览器都实现了对video元素和audio元素的支持 表现形式: <video widht="500" height="300" src="http://wwww.devdo.net/demo/test.mp4>

node.js 单元测试 Unit Test 及 程序持续集成 CI 工具

JavaScript 单元测试、更因其执行环境复杂无比、自动化门槛超高. 目前 JavaScript 越来越复杂庞大,其实更需要单元测试来确保品质. 但是由于 PhantomJS、Travis CI 等工具… 写 JavaScript 单元测试变得轻松许多. 今天来聊一下关于 javascript 单元测试 Unit Test 及 CI 持续集成工具. Unit Test 单元测试 我们常写一些工具类的 JavaScript Function、甚至包装成组件、以方便未来重复使用. 单元测试 (Unit Test) 是另外一份代码、用来检查这些代码的正确性. 例如过去我们得替自己撰写 t

[转] github上 fork + Pull Request 开发模式

4.1. Fork + Pull模式 参与GitHub中的项目开发,最常用和推荐的首选方式是“Fork + Pull”模式。在“Fork + Pull”模式下,项目参与者不必向项目创建者申请提交权限,而是在自己的托管空间下建立项目的派生(Fork)。 如果一个开源项目派生出另外的项目,通常意味着项目的分裂和开发团队的削弱,而GitHub中的项目派生则不会,而且正好相反,GitHub中的项目派生是项目壮大的体现。所有的派生项目都会有链接指向原始项目,派生项目没有独立的缺陷追踪系统(ISSUE),而是必须利用创建者本人的项目中的缺陷追踪系统。至于在派生项目中创建的提交,可以非常方便地利用GitH

如何把别人项目代码修改后 提交到github

首先你需要了解基本的 git相关知识 如果你从 github 上clone了别人的代码,本地做了一些修改后,直接提交可能会遇到一些问题,首先需要你输入用户名,接着输入密码,最后返回错误提示信息. 试想一下,如果你可以把 clone 下来的代码随意修改完后,还能随意提交到github服务器,那整个开源生态可能要彻底乱为一团. 所以不让你提交就对了. 那如何把 clone 后修改的代码提交到 github 呢? github上 不是有个fork么, 好,那么给别人的项目提交代码的方式就有了,先fork下别人的代码,于是你的github上就出现了同名的项目,这个项目就属于你自己了

用Gitlab 在linux 上搭建自己的 git 服务器

如何在 linux 上使用 gitlab 搭建自己的 git 服务器 gitlab 虽然 GitWeb 相当简单。 但如果你正在寻找一个更现代,功能更全的 Git 服务器,这里有几个开源的解决方案可供你选择安装。 因为 GitLab 是其中最出名的一个,我们将它作为示例并讨论它的安装和使用。 这比 GitWeb 要复杂的多并且需要更多的维护,但它的确是一个功能更全的选择。 安装 GitLab 是一个数据库支持的 web 应用,所以相比于其他 git 服务器,它的安装过程涉及到更多的东西。 幸运的是,这个过程有非常详细的文档说明和支持。 这里有一些可参考的方法帮你安装 GitLab 。 为

React 学习 JSX语法与原生HTML

JSX 可以看作JavaScript的拓展,看起来有点像XML。 使用React,可以进行JSX语法到JavaScript的转换。 为什么使用JSX 使用React,不一定非要使用JSX语法,可以使用原生的JS进行开发。但是React作者强烈建议我们使用JSX,因为JSX在定义类似HTML这种树形结构时,十分的简单明了。简明的代码结构更利于开发和维护。 XML有着开闭标签,在构建复杂的树形结构时,比函数调用和对象字面量更易读。看个直接的对比: //使用JSX React.render( <div> <div>

[随笔] http-server 快速创建node.js 静态服务器

说到node.js 创建服务器,首先想到 express 之前和大家分享过 关于http-server快速创建node服务 http-server 首先需要 全局安装 http-server npm install -g http-server http-server 启动 http-server -a 127.0.0.1 -p 7070 上面的一句命令启动了一个node.js 的静态服务器. 监听本地 7070 端口. 静态目录就是当前运行 命令所在的目录 如果你的当前项目中存在 public 文件夹,那么默认静态目录会指定到 public 如果没有 public

回到顶部