• 搜索:git

homebrew update 卡住,github下载非常慢

解决Homebrew 更新卡住的问题 brew install 安装软件时会遇到先执行 update , 而整个update 过程brew 会从 github上下载代码, github 用的aws ,而aws在我们的网络环境下访问都非常非常慢, 导致 update 会被卡住,或者几k的速度在下载. 给brew 换源 这里推荐试用 中科大的源, 之前换过 阿里的镜像, 但是 阿里镜像里只有brew-core 没有brew-cask , 导致 update 过程中,依然从 github 拉取 brew-cask的代码, 就算单独把brew-cask 的源换成中科大镜像依然无用. 所以干脆全部换成

Docker Compose 事半功倍,容器部署更方便简洁

Docker Compose是什么 Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用. 通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器. 什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式, YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互. 如何定义yml文件 新建 docker-compose.yml 文件 version: '3.7' services: mongodb: contain

sequelize 5.0中文文档 定义模型define model和验证 (二) - node.js语言最好用的orm

前言 在使用sequelize ORM框架时一定要先创建模型对象. 对象模型对应的就是数据库中表,字段及字段类型等的定义. 我们一般的做法是先在nodejs中将对象创建出来,然后调用Sequelize的同步方法,将数据库自动创建出来. 这样就避免了既要写代码建表,又要手工创建数据库中的表的操作. 只需要单独考虑代码中的对象类型等属性就好了. 如果数据库中已经建好了表,并且不能删除,这个时候就不能自动创建了,因为创建的时候会删除掉旧的数据 定义模型 名称类型说明 modelNameString模型名,在sequelize.models属性中会使用这个名称; 如果没有在options中指定

Typora搭配PicGo自定义图床 - 让你的markdown飞起来

前言 markdown的流行让大部分人脱离UI编辑专心致志写作,体验非常棒. 但是市场主流的markdown编辑器在上传附件功能方面一直都没有太得心应手的工具. 今天给大家推荐typora编辑器搭配PicGo自定义图床,让你随心所欲文档中插入图片. typora Typora是一款由Abner Lee开发的轻量级Markdown编辑器,适用于OS X、Windows和Linux三种操作系统,是一款免费软件。与其他Markdown编辑器不同的是,Typora没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代码编辑模式。 ---维基百科 下载

levelup 4.x版本升级node.js下leveldb数据库对照文档

levelup 是一个由谷歌构建的简单 key-value 数据库. 它在 Google Chrome 和许多其他产品中使用,使用 fast Snappy算法,可以将任意字节数组作为键和值. leveldown 它提供了一个纯 C++ 绑定到 LevelDB. 在浏览器或者 memdown 中,有许多可选存储( 如 level.js ),用于内存存储中的. 它们通常支持键和值的字符串和缓冲区. 对于更丰富的数据类型集,可以用 encoding-down 包装存储. level 它可以看做是包的一个集合,捆绑了 levelup , leveldown 和 encoding-down. 它的

vue项目打包发布线上环境

说明 发现一些朋友在群里询问如何线上发布vue项目. 从而暴露出来很多有意思的问题. 所以这篇博文简单介绍一下vue项目线上发布的情况. 本地环境 mac os node 10.16 vue 2.6 vue-cli 4.0 线上环境 centOS6 node 10.16 nginx vue是最近很火的前端框架, 所以它依赖的是浏览器,及我们可以从浏览器定位到你服务器nginx,然后nginx把指定的静态资源转发出来,最后我们在浏览器渲染看到 不管你的服务器是iis,apache还是nginx 只要http可以定位到服务器的静态资源即可. 很多人会有问号? 那为什么我在开发的时候用node命令

vscode 高效率插件koroFileHeader注释辅助和GitLens代码追踪

前言 vscode优势强劲,让各种技术栈同学爱不释手,不仅仅是IDE足够优秀,而且他的生态也非常丰富,各种各样的插件让你武装到牙齿. 今天推荐的2款插件本人都在用. koroFileHeader 文件头部加注释 光标处添加函数注释 文件头部加注释 文件头部注释在你创建文件自动添加, 如果是老文件,保存时自动添加更新记录. /* * @Author: zhangzhi * @Date: 2019-07-11 13:40:28 * @LastEditTime: 07-11 17:15:57 * @LastEditors: zhangzhi * @Description: In User Set

electron中文文档 ClientRequest

new ClientRequest(options) electron框架下主线程发起HTTP/HTTPS请求. ClientRequest实现了Writable Stream接口, 因此是一个EventEmitter类型. 参数 (Object | String) -如果 选项 是一个String类型, 它被解释为请求的URL. 如果它是一个Object类型, 那么它可以通过以下属性指定一个HTTP请求 method String (可选) - HTTP请求方法. 默认为GET方法. url String (可选) - 请求的URL. 必须在指定了http或https的协议方案的独立表单

使用Electron打造跨平台桌面应用

前言 早期桌面应用的开发主要借助原生 C/C++ API 进行,由于需要反复经历编译过程,且无法分离界面 UI 与业务代码,开发调试极为不便。后期出现的 QT 和 WPF 在一定程度上解决了界面代码分离和跨平台的问题,却依然无法避免较长时间的编译过程。近几年伴随互联网行业的迅猛发展,尤其是 NodeJS、Chromium 这类基于 W3C 标准开源应用的不断涌现,原生代码与 Web 浏览器开发逐步走向融合,Electron 正是在这种背景下诞生的。 electron Electron 是由 Github 开发,通过将Chromium和NodeJS整合为一个运行时环境,实现使用 HTML、CS

什么是electron - javascript,html和CSS 构建跨平台桌面应用

开源地址 https://github.com/electron/electron 关于Electron Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。 核心团队和贡献者 Electron由Github上的一支团队和一群活跃的贡献者维护。 有些贡献者是独立开发者,有些则在用Electron构建应用的大型公司里工作。 版本 Electron的版本发布很频繁。 每当Chro

vscode天赋异禀-2018年开发者调查中最受欢迎-比较sublime和webstorm

Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器[4],它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等。该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能. -- 维基百科 2015 年 4 月 29 日的 Build 大会上,微软发布了 Visual Studio Code 第一个预览版本。短短四年时间里,VS Co

使用 IDEA 创建java项目

什么是 IDEA IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境; IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的; IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主; 它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言. 如何安装 IDEA 破解版 本文有

vscode markdownlint插件让你的markdown更加规范 -- Rules规则提示信息

前言 我们在书写代码的时候, 经常会用到eslint来约束代码规范, 这样团队开发或者后期维护都省了很多烦恼. markdown书写时一样有这样的问题, 那么我们如何来约束markdown的书写规范呢. 今天介绍一款 vscode 的插件 markdownlint https://github.com/DavidAnson/markdownlint vscode 直接搜索安装插件 markdownlint 当你在vscode中书写markdown文本时,不符合规范的内容就会有黄色波浪线来提示及时修正. 语法规范提示内容 MD001 - Heading levels should only i

docker 实践:如何构建自己的镜像

创建自己的项目 我们用简单的 node.js web项目输出 helloworld 为例. 项目目录: npm start app.js 启动项目; app.js 代码 const Koa = require('koa'); const app = new Koa(); const main = ctx => { ctx.response.body = 'Hello World'; }; app.use(main); app.listen(3000); 编写dockerfile FROM node:8.4 COPY . /app WORKDIR /app RUN ["n

brew install时一直卡在Updating怎么办

前言 当你通过brew安装软件的时候, 发现一只卡在Updating Updating Homebrew... 这个时候有俩种办法来应对 找国内的源Updating Homebrew brew install 时不要 update 切换国内的源 //替换brew源 cd "$(brew --repo)" git remote set-url origin https://mirrors.ustc.edu.cn/brew.git //替换homebrew-core.git cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" gi

Git pull 强制拉取并线上代码覆盖本地

当多人协同开发时, 或者服务器代码被人改动时, git pull 时,提示你本地代码有改动,需要提交合并.... git强制拉取代码 git fetch --all 回退到当前版本修改之前的状态 git reset --hard origin/master 注意:你当前的分支 获取代码服务器最新版本 git pull 出自:Git pull 强制拉取并线上代码覆盖本地

remarkable搭配markdown-toc自动生成博文目录

前段时间写过一篇关于showdown和showdown-toc插件自动生成目录的博客 ⬅️点击查看 为什么要改进 showdown-toc作为专门为showdown开发的 toc 插件,搭配使用都非常方便 安装showdown ,showdown-toc toc插件集成到showdown代码中 const Showdown = require('showdown'); const showdownToc = require('showdown-toc'); const showdownHighlight = require("showdown-highlight"); const to

markdown编辑器如何自动生成目录 showdown toc插件的使用

markdown如何转化成html markdown 文本转化成 html 成熟的工具有不少, node 开源库中有 markdown-it showdown markdown-to-html marked markdown 上面的工具各有优势,自行google开源地址,找到一款最适合自己的. 本人博客一直是markdown编辑器撰写, 然后,一直再琢磨如何通过标题来自动生成内容目录, 造轮子的事情还是留给大牛们, 我们能把轮子使用好也是对大牛们的敬仰和支持. markdown-it 介绍 开源地址: https://github.com/markdown-it/markdown-it

[投稿] 北京 海淀区 招聘 高级 node.js 开发工程师

联系站长免费投稿发布招聘信息 职责 负责公司两大平台智课网(smartstudy.com)和极智批改网(smartpigai.com)功能开发、 BUG修复及日常维护,依据公司产品设计完成产品功能模块的编程开发。 职位 node.js 高级开发工程师 学历 本科及以上 坐标 北京 - 海淀区 - 交通大学 - 上园村3号北交大知行大厦2层 要求 1、计算机相关专业,本科及以上学历; 2、熟悉nodejs相关开发框架,理解异步编程模式; 3、熟悉css, html5; 4、熟悉linux/mac系统; 5、熟练掌握MySQL数据库,配置管理等操作; 6、熟悉常用的数据结构和算法,

node.js 下使用 wechat 开发微信接口

node.js 开发微信系列二 wechat 开发微信回调接口 上一篇我们介绍了 node.js下定时获取access_token 这里可能有个疑问,node.js 开发微信回调接口和定时获取 access_token 有关系吗? 其实没有必然的关系,通过微信回调接口我们可以方便的获取到交互者的 openid 但是,如果你想根据 openid 获取当前交互者的用户信息时,就必须要 access_token 了. 今天我们只谈 wechat 如何使用,获取用户详情在以后的博文中介绍. wechat 微信公共平台消息接口服务中间件 github地址: https://github.com/

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 一下自己的代码,并不是"秀",起码对方可以知道对方在干什么,而且还可以用自己的思维模式去判断对方的代码实现是不是最优,有没有改进的

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

centOS6.5 快速安装部署 gitLab

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

通过 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: _

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

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

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

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

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

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

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

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

m3u8 跨平台 全兼容 移动 web在线视频 播放器

什么是m3u m3u是一个纯文本文件,虽然我们平时看到播放器首先加载了此文件,但是它并不是一个音频文件。 播放器并不是播放它,而是根据它的记录找到网络地址进行在线播放 什么是m3u8 m3u8 是在 m3u 格式下扩展出来的, 可以播流或者点播形式,目的是实现时实性及保密性它会不让你获取它的视频所在地址 浏览器使用的是 m3u8 文件。 m3u8 跟音频列表格式 m3u 很像,可以简单的认为 m3u8 就是包含多个 ts 文件的播放列表。 播放器按顺序逐个播放,全部放完再请求一下 m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。 整个直播过程就是依靠一个不断更新

NPM如何发布node模块到社区

如何把自己写的 node.js 模块发布到 npm 开源社区 有下面几个前提条件: 你需要是 npm 社区注册的会员 如果你还没有,点击下面的链接注册 https://www.npmjs.com/ 你的开发环境需要 安装node.js 和 npm 创建repository 接下来我们需要创建module所需的repository,默认你拥有一个github账号(如果没有自行解决),这个repository用来托管我们module的代码,并方便用户报告bug,最重要的是可以让其他开发者向module贡献代码,这也是乐趣所在。 初始化package.json 接下来我们创建pa

levelDB 数据操作接口 实现 promise 规范

什么是levelDB google 公司开发的一款 高性能KV型nosql数据库 ,你可以点击链接查看以前的介绍. node.js 下使用leveldb 请移步到这里. 但是之前的所有leveldb 操作接口都是基于 callback 回调.所以今天这篇就是分享下leveldb 数据接口实现promise 规范. 什么是promise promise 规范让javascript拜托callback回调 请移步到上面的博文查看 levelup levelup 是 leveldb 在node.js 上的实现开源包. github地址: https://github.com/L

JSX 语法了解,我们为什么要学习它

传统的 MVC 是将模板放在其他地方,比如 script 标签或者模板文件,再在 JS 中通过某种手段引用模板。按照这种思路,想想多少次我们面对四处分散的模板片段不知所措?纠结模板引擎,纠结模板存放位置,纠结如何引用模板……下面是一段 React 官方的看法: We strongly believe that components are the right way to separate concerns rather than "templates" and "display logic." We think that markup and

MP4Box 借用HTML5 file api 本地读取 mp4 头信息

上一篇博文介绍了 html5 file api html5 提供了一套可以操作本地文件的 api ,但是有一定的局限性 必须由用户发起一个事件,所以你不要妄想着用户浏览器加载某个站点时,主动去读取他本地硬盘的资料....不可能的. 你的浏览器必须支持 html5 的 file api ,所以你也不要妄想去兼容IE6 用户发起行为比如: file upload 操作, 文件拖拽 等. 最近遇到一个需求 1.本地上传视频要保存到七牛服务器 2.提交切割视频任务 (大文件切割成多份) 3.返回视频截图 (按视频长短截取图片,供管理员审核视频内容) 七牛这边提供的有 j

node.js 下 promise 开源包 q 使用

promise 规范 可以让你从繁杂的 callback 中解脱出来. 如果我们在传统的 callback 中执行 5个 步骤,应该是下面这样的: setp1(function(res)){ setp2(function(res)){ setp3(function(res){ setp4(function(res){ setp5(function(res){ //终于执行完了 }); }); }); });

安装 nrm 自由切换 npm 源 国内镜像提升下载速度

之前写了一篇博文,关于如何把 npm 换到国内镜像员的博文,如下: 给电脑换 npm 国内镜像员 cnpm 为什么要换,你懂的! 今天给大家推荐一个 npm 开源包 nrm 基于 npm ,全局安装以后,你开源无缝快速切换几个源,提高下载速度,拒绝 loading ! 安装 npm install -g nrm 开源地址 https://github.com/Pana/nrm 使用 查看帮助 ➜ /Users/zhangzhi/code >nrm -h Usage: nrm [options] [command] Commands: l

[投稿] 深圳 南山区 高薪招聘 web 开发 攻城狮

坐标: 深圳 , 南山区 职位: web 开发工程师 岗位职责: 1、负责后台相关业务系统的设计和研发; 2、负责平台开放接口的设计和研发; 3、优化性能、维护现有系统的功能模块、扩展的基础框架; 任职要求: 1、本科学历以上,计算机或相关专业,2年以上工作项目经验;对javascript语言本身有较为深刻的理解。 2、 了解NodeJS及其相关框架 ,要求至少有1年以上的服务器端研发经验; 3、对数据结构和算法设计有一定的理解; 4、熟悉MongoDB或MySQL ,有较强的SQL编程、优化能力; 5、熟悉Linux,熟悉常用的Shell命令; 6、熟练使用Git代码管理工具及

node.js webkit 项目 开启node.js 桌面应用

为什么是 node.js 桌面应用 准确的说,这只是一个浏览器, node-webkit 项目是 chromium 和 node.js 搭建起来的本地运行时环境. 我们知道node.js 是javascript 在服务器端通过强大的 V8 引擎实现的. chromium 内置了 V8 引擎 所以 node-webkit 就这样结合起来了. 回到刚才的问题,为什么说是桌面应用 Node支持的与操作系统交互的功能,文件系统,网络 , 操作系统资源等, 以及Node之上的第三方库都可以在node-webkit中进行使用 所以他很像是一个桌面级应用,但是又有区别 和传统桌面应用不

使用 rhc 工具连接 openshift 服务器

上一篇分享了, 如何使用 gem 在mac 环境下安装 rhc工具 这一篇是关于 如何使用 rhc 工具连接 openshift 服务器 如何使用 rhc 首先运行 rhc setup ➜ /Users/zhangzhi >rhc setup OpenShift Client Tools (RHC) Setup Wizard This wizard will help you upload your SSH keys, set your application namespace, and check that other programs like Git are pr

angular.js 官方应用 angular-phonecat 下载 运行 学习

angular-phonecat 是什么 它是google 官方开发的一个 angular.js入门学习web应用程序. 此web应用程序是介绍 android 手机的一个站点 从哪里下载 angular-phonecat git 直接下载克隆项目 git clone --depth=20 https://github.com/angular/angular-phonecat.git 可以学习什么? angular.js 框架的构建,测试,学习 后端 node.js 的搭配使用 如何让它运行起来 首先安装 node.js 运行的依赖包 npm install 其中有几个

http-server Angular.js 后端node服务首选 轻量级替换 Express 解决方案

http-server 是轻量级web服务 你可以轻松使用 http-server 替换 Express http-server 轻量级到什么地步 无需任何设置 也需不要你引用 轻松把当前所在目录架构成一个web服务 应用场景 angular.js 应用. 因为 angular.js本身作为一个单页面应用,首先需要加载这个单页面. 而这页面,一般是我们静态目录下的 index.hlmt 然后这个静态页面加载了 angular.js 前端框架 这时真正的路由控制已经掌握到了 angular.js 的手里 所以,你不需要像 Express 这样大的包来支持后端web服务

mac 下的 tree 命令 终端展示你的目录树结构

在 linux 下你可以很方便的使用 tree 命令来查看当前目录下的目录树机构. 但是在 mac 下,至少你需要安装一个工具. 开始,我从网上找到了一个shell 命令打印 tree 结构的方法. find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' 你可以在你的终端下,直接输入上面的shell 命令来查看当前目录的结构树 如何把它变成一个 命令,直接使用呢 我们想到了 alias 指定别名的方法 alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;___

git 如何获取指定 tag 代码

查看 关于git tag 操作方法 分享一个小知识点: git 如何获取指定 tag 代码 如果你本地有代码仓库 git tag //查看本地tag git checkout tag_name 如果你本地没有代码仓库 git clone git@xxx.xxx.xxx:/project_name.git git tag //查看本地tag 注意上面的git服务器地址,项目所在目录要替换 然后执行 checkout git checkout tag_name 如图: 你会看到提示: 当前处于一个“detached HEAD" 状态 ,每一个 tag 就是代

node.js 使用 UglifyJS2 高效率压缩 javascript 文件

UglifyJS2 这个工具使用很长时间了,但之前都是在 gulp 自动构建 时用到了 UglifyJS 算法进行压缩. 最近玩了一下 UglifyJS2 ,做了一个 在线压缩javascript工具 欢迎点击玩耍. 为什么要压缩 javascript 因为每个人开发者的书写习惯,定义参数习惯,已经使用习惯都不一样. 所以相同的功能出自不同开发者代码各异.这里牵扯到一个代码所占空间. 以前端为例来说明 大家通常都会认为,现在在网络时代,动不动就是10M光纤,拨号上网让人感觉是上个世纪的方式..... 说法是没有问题,但是,我们今天讨论的并不是终端下载速度. 而是前端压缩对服务器有何利

brew mac osx 上软件包管理工具

今天推荐 Mac OSX 下,方便高效的包管理工具 brew brew 的全名叫做 Homebrew 它的功能类似于 ubuntu 下同下 apt-get ,或者 Cent OS 下的 yum 等包管理工具. 我们可以很方便的 安装,更新,卸载软件 brew 的官网 http://brew.sh/index_zh-cn.html brew 安装 打开你的 mac 终端命令行工具,输入下面的脚本 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 因

node.js 版本控制 nvm 和 n 使用 及 nvm 重启终端失效的解决方法

今天的话题包括2个部分 node.js 下使用 nvm 或者 n 来进行版本控制 nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效 第一部分 用什么来管理 node.js 版本 首先应该欢呼庆祝一下 node.js 终于发布了有历史意义的正式版 1.0 ,虽然我们看到的是V4.0,其实他就是node.js 真正意义的 1.0, io.js 不负众望,完成了它的使命. 回头看这几年node.js 以及 io.js 的发展速度,各种版本的迭代发布,我们很有必要用一个 node.js 的版本管理工具来控制当前系统的 node.js 版本. 为什么

node.js 利用 sitemap 为你的站点生成站点地图

node.js 下利用 sitemap 生成站点地图. 大致的工作就是,我们生成一份提供给搜索引擎的 Sitemap 之前你获取在网络上找过各种在线生成 sitemap 工具或者服务,使用起来却都不尽人意.有的收费,有的最大抓取2层url ,还有的最大链接数限制在500个. 所以今天和大家分享的是如何用 node.js 来为站点生成 sitemap 什么是sitemap 借用百科的一段话 Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的

node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传

node.js下四种post提交数据的方式 今天说分享的是其中一种,就是上传文件. Express 4.0 以后,将功能原子化,高内聚,低耦合,独立出了很多中间件 今天主要分享文件上传 对于connect-multiparty ,他是专门处理此类post数据相关的依赖包,也是博客之前使用的方式 github 官方地址: https://github.com/andrewrk/connect-multiparty 安装 npm install connect-multiparty 使用 var multipart = require('connect-multiparty')

创建 shell 文件 实现 git拉取代码 forever 别名 启动 node.js 服务

这一篇和前面的一篇博文有点类似,forever 利用别名启动 node.js 服务简单和大家分享三点:一:forever 利用别名启动 node.js 服务首先我们需要为 node.js 启动文件创建一个 软链接ln-sapp.jsnode_start有了上面的软链接,我们就不需要再使用 app.js 来启动node.js 服务了.二:git 拉取指定分支的最新代码gitcheckoutdev gitpull三:创建 shell 文件nanostart_node.sh输入下面内容,保存#!/usr/bin/envbash projectPath=/code/test cd $projectPa

javascript 生成二维码实现链接从微信内跳出

现在的二维码相当火,借着移动互联网的风口也快飞起来了.现在各种语言的各种开源包,基本都有对应的生成二维码的源码.但是今天我们分享的不是服务器生成二维码,而是前端页面如果用 javascript 来生成一个二维码.这种动态生成二维码的需求越来越多.如果都要依靠服务器端赖生成,第一:面临资源紧缺的状况,如果在大的并发环境,这种cpu密集型计算必定导致一个问题,就是请求排队,那就不用谈了.用户不会一直在傻傻的等你.第二:就算你顺利生成了二维码,还面临一个网络传输带宽的压力,虽然它很小很小,但是当在一个并发压力大的环境下,依然面临带宽被占的问题.这样说来,如果能在客户端生成二维码,貌似是最好的解决方案

ssh-agent 与 ssh 的区别

之前有过一篇博文关于多个ssh key 在同一台电脑上如何管理使用其实哪一篇并不完善.所以想专门再开博客来了解下有关 ssh 和 ssh-agent 的一些知识点.ssh-agent 是什么:出自:ssh-agent 与 ssh 的区别 (9月10日更新)它是linux 系统上的一个程序,这个程序可以控制和保存公钥身份验证所使用的私钥程序,听起来好拗口.当 ssh-add 把私钥交给 ssh-agent 来管理时,其他程序需要身份验证的时候都可以申请交给 ssh-agent 来完成整个认证过程.所以,到这里我们应该大体了解 ssh-agent : 它就是一个帮助我们验证身份的程序.如何使用语法

[转]Node.js 与 io.js 那些事儿

去年12月,多位重量级Node.js开发者不满Joyent对Node.js的管理,自立门户创建了io.js。io.js的发展速度非常快,先是于2015年1月份发布了1.0版本,并且很快就达到了2.0版本,社区非常活跃。而最近io.js社区又宣布,这两个项目将合并到Node基金会下,并暂时由“Node.js和io.js核心技术团队联合监督”运营。本文将聊一聊Node.js项目的一些历史情况,与io.js项目之间的恩怨纠葛,他们将来的发展去向。希望能从历史的层面去了解这个开源项目在运营模式上是如何演变和发展的Node.js项目的由来自从JavaScript被Brendan Eich创造出来后,

zsh 有哪些方便快捷的功能,提升shell输入体验 优点简介(不断补充)

这几天宅在家里享受胜利日的假期,连续2天下雨,出不去....无聊之时会玩一玩 zsh ,确实是个好东东,作为一个攻城狮的你,必须要去玩转一下.之前介绍了如何配置利用oh-my-zsh 来配置你的zsh 及 zsh 通过修改配置文件,皮肤模板来定制化属于你的shell上面的传送链接你可以直接点击查看 (这句话好像是废话,忽略吧)今天分享几个 zsh 使用小技巧:如果你不知道该如何使用 zsh ,那么你之前如何使用的 bash ,现在就怎么使用.没错,这就是一个技巧.zsh 360°无死角全兼容 bash ,之前怎么写,现在就怎么写. 这才叫酸爽!按 tab 键补全之前在 bash 环境下.如果我

incr.zsh 补全插件 让你在zsh 模式下全自动补全指令或目录

前面有几篇介绍了如何开启zsh终极装逼模式,如果你已经开启,请好好的装下去.今天这个插件会助你一臂之力,加油,骚年!今天说的这个东东看上去确实有尿性,不管我如何修饰都抵不过它的一张效果图.想要你的shell有这样的效果,首先满足下面的条件:1 你用 oh-my-zsh 来协助你完成 zsh 的配置2 你开启了 zsh3 你下载了这个 插件4 你把插件执行shell 写到了你的 .zshrc 配置文件中上面说到的 1,2 在之前的博文里面早,最上面其实我贴出来如何开启 zsh 的链接.(如果你没有鼠标的话,肯定点不开)今天就是分享下 3,4 提到的内容:如何下载这个插件:官网:http://mi

zsh 依赖 oh-my-zsh 轻松换皮肤模板

上一篇博文简单的介绍了 zsh是什么,如何依赖oh-my-zsh配置这一篇和大家分享一个小插曲,就是换皮肤,配色.人都是感性的动物,大多数开始鼓捣的东西,必须看上去顺眼.oh-my-zsh 帮我们集成了很灵活的皮肤配置方案.皮肤wiki :https://github.com/robbyrussell/oh-my-zsh/wiki/themes 里面对 oh-my-zsh 集成的各种皮肤都有说明和示例,你看上眼的就可以试用下.首先在wiki 里找到你中意的皮肤 名称.然后去 修改 zsh配置文件➜/Users/zhangzhi>nano.zshrc然后在配置内容中找到#timethato

oh-my-zsh配置你的zsh提高shell逼格终极选择

抱歉,这篇博文推迟发布了,人都是有惰性的...看在这个牛逼闪闪的标题就原谅我吧!为何这篇文章要归类到 mac 下? 第一个问题,稍后我们说明下.zsh是个什么东东? 第二个问题...你应该稍微接触过一点点shell ,或者了解一点点?如果不知道 shell ,那就点下广告离开吧, 人生苦短,时间珍贵.在unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算.shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键盘输入一种自己容易记忆识别的符号标识(shell 命令)然后 shell 解析这种命令再反馈给内核去执行一系列操作.那么问题来了,今天要说的zsh

gulp 传参数 实现定制化执行任务

如果你想自动化构建一些东东,请使用 gulp ,还不明白什么是 gulp ,那么请用 google 百度一下 "什么是gulp"如果你不知道如何翻墙使用 google ,那么请离自动化构建远一点(最好披星戴月地赶快逃离IT圈)因为之前专门有一篇介绍了gulp ,是什么,能帮我们做什么,如何去做,请点击此博文查看:angular 系列三 gulp 代码构建工具简介所以上面博文提到的东西这里都不会再重复说明.今天和大家分享的是 如何使用 gulp 传输参数.我今天碰到一个应用场景:老项目A还在线上维护,新项目B已经着手在开发.这2套项目后端调用是一致的,唯独不同的地方是前端UI

mac 下 使用 iterm2 配置及快键键使用

之前介绍过一篇关于mac 下使用和配置 iterm2的blog今天这篇稍微详细一点介绍,并且搭配 zsh (zsh 会单独开一篇博客来说)iterm2 官方站点:http://www.iterm2.com/ 最新版本 2.2我使用还是 2.0安装以后需要一套皮肤来装饰它,毕竟人类是一种视觉动物,我的iterm2是下面这个样子.配色:字体,颜色 等都可以来配置.打开 iterm2 / Preferences打开配置菜单后:Profiles / Colors在这个窗口你可以调整你喜欢的各种颜色,但是这样做完后,你会发现并不是你想要的皮肤,因为你把你认为自己喜欢的各种颜色配置好以后,当他们在终端组合

git 默认对文件名大小写不敏感 (不区分文件名大小写)

git 默认不区分文件名大小写当你创建一个文件后,叫 readme.md 写入内容后 提交到线上代码仓库.然后你在本地修改文件名为 Readme.md 接着你去提交,发现代码没有变化.gitstatus无任何提示信息.其实 git 默认对于文件名大小写是不敏感的,所以上面你修改了首字母大写,但是git 并没有发现代码任何改动.那么如何才能让 git 识别文件名大小写变化.一 配置git 使其对文件名大小写敏感git config core.ignorecase falsezhangzhi@moke:~/code/demo$gitconfigcore.ignorecasefalse二 从git

node.js 下使用 redis 作为缓存介质

之前有一篇介绍node.js 下,轻量级缓存应用模块 node-cache点击访问.今天介绍使用 redis 作为缓存介质.首先,我们需要一个 node.js 下可以访问 redis 的中间件,就是 node_redisgithub地址:https://github.com/NodeRedis/node_redis安装:npminstall--saveredis然后我们封装一个缓存类:varredis=require('redis'); varconfig=require('../config'); ///////////////////////////////

commander.js node.js下又一个命令交互开源包

上周分享了一篇关于node.js 下命令行框架 yargs 如何实现与程序交互今天又一款强大的命令行框架开源包 commander.jsnode.js 下的commander是从Ruby下同名项目移植过来的.下面我们来简单了解下.github项目地址:https://github.com/tj/commander.js npm 地址:https://www.npmjs.com/package/commander 使用:npminstall--savecommandervarcommander=require('commander'); //定义参数 commander.    

node.js 命令行框架 yargs 和你的程序实现交互

如何让你的node.js 应用程序像shell 脚本一样和你交互?于是就有了今天这一片博文 关于yargs 使用分享.大概有一种情况你需要让你的程序接收一个参数,通过这个参数我们做一系列的定制化功能.常见的做法是 把一些不同环境不同配置的变量写到 config 配置文件中.当你的环境变化的时候,你手动去修改你的config 中的变量来达到不同环境显示定制化的东西.更具象的一个例子:config文件中有一个配置项 langue当你发布国内站点的时候,你需要配置成 langue="zh-cn"当你发布国外站点的时候,你需要配置成 langue="en"现在,

git cherry-pick 把提交到A分支的部分commit 再提交到B分支上

关于git 下操作分支的更多博文请本站搜索 "git"上一篇博文介绍了git删除远程分支或重命名分支这一篇分享一个git 下很有用的指令 cherry-pick应用环境:有一个主分支 master (这个分支只是用来合并其他通过测试的分支,及上线打版本)另一个分支 dev (开发提交的分支)当你通过一番挣扎终于搞定一个bug,顺手提交到 git 服务器,心里一阵暗爽. 这时发现你当前所在的分支是 master !!!这个分支不是开发者用来提交代码的,可惜现在剁手也晚了.怎么办?于是你想到,合并分支.合并分支通常会带来各种各样的冲突,而且当前 dev 分支还在开发中,没有进过

git 删除远程分支 重命名远程分支

上一篇介绍过关于 git 打版本,推送本地版本到远程git服务器这一篇和大家分享下 删除/重命名远程分支.其实关于分支的本地操作,之前就有一篇关于git本地分支和远程分支的操作介绍 ,所以关于本地如何创建/查看分支,推送分支,查看远程分支全部点击这个链接查看.zhangzhi@moke:~/code/demo$gitbranch-a *dev master new remotes/origin/HEAD->origin/master remotes/origin/dev remotes/origin/master remotes/origin/new上面是我们查看远程分支的列表. dev

git 打标签并推送tag到托管服务器

今天和大家分享下用 git 给代码打标签的小功能.关于git 的另外一篇分支管理http://yijiebuyi.com/blog/303e08d3380d663544217111a94d7536.html我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的.首先我们了解下 git 的 tag 功能:git 下打标签其实有2种情况(1): 轻量级的它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用.(2):带附注的实际上是存储在仓库中的一个独立对象,它有自身的校

node.js 使用 mssql 开源库操作 sqlServer 数据库

node.js 连接 ms SqlServer ,你没有看错,就是这样.我们抛开一切操作系统的歧视, 当你需要用到的数据源存储在 SqlServer 中,那么就会遇到我们今天要说的情况.一. mssql 下载安装github地址:https://github.com/patriksimek/node-mssql mssql 默认使用Tedious驱动.Tediousby Mike D Pilsbury (pure javascript - windows/osx/linux) 默认支持(windows/osx/linux 等系统)所以你在mac 下用node.js 连接 sqlserver 是

MAC 下 webstrom 使用集成git工具 提交代码

webstrom 是工人的非常智能的前端开发IDE ,注意它是一个IDE,并非传统编辑器.它的功能足够多,集成的工具也非常丰富.关于 mac 下webstrom 常用的快键键 ,点击查看这篇博文.今天要和大家分享的是mac 下使用 webstrom 集成git工具提交代码.第一步:配置webstrom 的 git 环境WebStrom -> PreferencesVersion Control 配置项里配置 git 环境.如果你的系统安装了git ,这里默认已经自动识别.path to Git executable : 填写系统 git 执行文件路径 ,点击 Test 测试git可执行目

PostgreSQL 使用 node-postgres 在 node.js 中的应用

之前有一篇介绍PostgreSQL在MAC环境下的初体验 ,今天要和大家分享的是 node.js 应用 + PostgreSQL 做数据存储的demo.node.js 环境使用 PostgreSQL 需要下载编译node-postgresgithub地址:https://github.com/brianc/node-postgres 使用:zhangzhi@moke:npminstall--savepgREADME.md 关于如何使用的api 也比较简单:varpg=require('pg'); varconString="postgres://username:pa

locate 在linux下快速定位文档

linux 下可以使用 locate 和 find 来查找文件,但是 locate 在定位时要比 find 快.他们的区别:locate并不是穿梭于档案文件中查找,而是在数据库查找文件.find 正好相反,他的查找要穿梭于档案文件中.这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.所以 locate 要查询实时数据,需要更新数据库.locate--u使用格式:zhangzhi@moke:~$locate[-ir]keyword-i 不区分大小写-r 后面可以接收正则表达式使用方法:全局查找一个zhangz

README.md 如何规范 - 开源项目中必不可少的文件

我们在项目中常常看到README.md 当然扩展名可能是txt ,rb,md ,甚至 me 都有可能.其实这个小小的静态文件还是有些重要信息可以传递的.这就是你在github上创建一个项目的是,总会提示你要不要生成一个README.md 文件.README 应该是介绍code source 的一个概览.其实这个静态文件是有约定成俗的规范.你的项目介绍你的代码实现了什么功能?该如何使用? (系统环境参数,部署要素)代码组织架构是什么样的?版本更新重要摘要如果你的README包括上面的内容,那么当使用者拿到代码,打开README后,基本就知道该如何下手了.如下 README.md :DEMO ##

pandoc markdown 生成pdf文档

今天和大家分享一个工具 pandocgithub地址:https://github.com/jgm/pandoc 它被称作是一款神器为什么这样说:标记语言经过一路发展,貌似从最初的复杂架构中渐渐的又回归到了简洁.不得不提的是 2004年发展起来的 markdown 语法,简洁清爽,非常受人欢迎,尤其是不会操作word的用户,不会书写html的用户,简直就是福音.但是问题来了, markdown 语法就算非常简洁,我潇潇洒洒写了5万字的小说,最后这个 md 文件如何变成 word文档(或许是受markdown 限制,打印问题,或者出版社要求) 或者如何变成一个pdf文档.......(关于mar

lodash 超越 underscor 全兼容并且性能更突出

underscore 以14000多的star ,对于 7000多 star 的 lodash虽然是压倒性优势,但是你不得不承认 lodash 的增长速度以及他的性能优化.为什么要把这2个牵扯在一起,因为他们有着千丝万缕的关系.lodash 原本是 underscore 的一个fork ,对于underscore 的每一个api的增加,移除,修改等.lodash 都会迅速做出反应,所以理论上我们可以0成本直接用 lodash 来替换 underscore.因为lodash 的内部对api做了惰性求值?(具体含义还是似懂非懂,有待进一步学习)所以他的api性能高出 underscore 一大截,

when 让你跳出异步回调噩梦 node.js下promise/A规范的使用

其实关于promise 的博客,前端时间专门写了一篇关于 promise 规范的文章,promise规范 让 javascript 中的异步调用更加人性化.简单回忆下:promise/A规范定义的“Deferred/Promise”模型其实是实现了“发布/订阅”模型.通过Deferred对象发布事件,包括下面2种事件完成 --> resolve事件,失败 --> reject事件,通过Promise对象进行对应完成或失败的订阅类似于任务状态转变时事件被触发.将会对应的执行事件绑定函数.每个Promise任务都有三种状态:默认(pending)、完成(fulfilled)、失败(re

node-config 模块根据 ENV 环境变量不同加载响应的配置文件

上一篇博文和大家分享了ENV定制开发,测试,发布环境变量.定制了以后如何来用,今天这篇就是要介绍如何使用自定义的不同环境变量.大概有些同学会有疑问.为什么各种环境不直接配成一致的.如果可以这么做的话,再好不过的.什么时候可能需要不同的配置.如果你想在开发环境下打印出log ,但是在正式运行环境不想打印log.你想在开发环境加载原 javascript 文件, 在正式运行环境下压缩javascript 文件.或者你想在开发环境加载一套 config 配置,在正式运行环境加载另外一套 config 配置.等等......一切你需要定制化的时候. 3. 我需要一个普通的json配置文件即可,为何要用

ENV定制开发,测试,发布环境变量

env 命令可以显示Linux系统当前用户环境变量,当然mac下也是可以的.注意是当前用户的环境变量.查看ENV环境变量:zhangzhi@moke:~$ENV TERM_PROGRAM=iTerm.app ANDROID_HOME=/Users/zhangzhi/Library/Android/sdk SHELL=/bin/bash TERM=xterm-256color CLICOLOR=1 TMPDIR=/var/folders/b9/x5dylknd4x735wwy54f3g41h0000gn/T/ GRADLE_HOME=/usr/local/gradle-2.2.1 Apple_P

node-cache 模块 node.js 轻量级缓存管理使用及源码分析

随着前端越来越重,已经不是当年的一个页面配几个第三方js库实现一些花俏的效果,而是出现了各种各样的框架解决方案.当我们项目实现前后端分离时,甚至一些逻辑处理也会放到前端来处理.所以随随便便打开一个页面上百k应该也是正常,甚至更大的页面在考验的前端.但是伴随成长的后端,尤其数存储方面貌似发展缓慢,总有跟不上的赶脚!想当年我们使用关系型数据库,当达到一个瓶颈时,解决起来是不计后果的,读写分离,拆表拆库,做service中间件,然后给中间件负载均衡等等来减轻前端并发造成的后端数据压力.如今的mongodb 做一个分布式貌似轻轻松松, redis 做一层缓存让你有飞一样的感觉.我们终于谈到了缓存.缓存

forever node.js web应用中不可或缺的伟大模块

javascript 一统江湖的势头越来越猛,越来越重的前端,不得不实施前后端分离,angular.js 成功把前端javascript抽象成了一个复杂的MVC框架,注意,它是一个框架,可不是普普通通的插件,或者工具包.另一位兄弟则是跳出浏览器宿主的限制,活跃在了服务器端,大名鼎鼎的 node.js还有一位齐头并进的好哥们 mongodb ,它不仅让你使用熟悉的javascript范围数据库,而且还自己实现了javascript引擎.可能创建 javascript 语言的大牛,看到今天js的发展事态,想必脊梁骨也是阵阵发凉.我们好像扯远了,开题先痛痛快快意淫一把怎能善罢甘休,O(∩_∩)O~由

前端包管理器bower的使用

随着前端项目越来越复杂,随便引入几个第三方javascript脚本库貌似已经习以为常,但是随着越来越多的包被引入,开发人员维护起来也是一件相当头疼的事,比如第三方库的版本更新,安装,卸载等.twitter推出了一个前端包管理器 bower 帮我们解决了这些头疼的事情.bower 完全借鉴了npm构思和实现原理,所以后面你会看到它的使用几乎和npm是一模一样.当然,bower 是运行在node.js 基础上,所以你的当前环境确保已经安装 node.js .bower 的基础功能是什么?1.注册模块每个包需要确定一个唯一的 ID 使得搜索和下载的时候能够正确匹配2.文件存储把文件存储在一个有效的网

angular.js 下使用 $q 创建一个promise 链式调用

angular.js 下使用$q 创建一个 promose 链式调用.我们在前几天分享了一篇,关于javascript中 promose 规范的博客 (点击查看)现在很多很多的开源javascript库 实现了 promise 规范大名鼎鼎的npm 包 Qgithub地址:https://github.com/kriskowal/q 相仿的在 angular.js 下 $q 是一个小型轻量级的 promise 实现.作者据说是$q是从Kris Kowal的Q中获得灵感从而产生的一个promise/deffered实现我们如何使用$q 定义一个 promise . vargetPersonLis

分享一个关于redis 的orm框架 node-ron 使用

今天好累....下班去健身房跑步运动,看着这一身肥肉,希望未来的几个月内能有一点改变,健康最重要,大家要多注意身体.开始说正题,成熟的orm框架大部分来自关系型数据库.KV数据库的orm还是比较少的,但是增速很快,支持mongodb的也陆续出来,但是如果你想找一款 redis 的orm真的少的可怜.github地址:https://github.com/wdavidw/node-ron用的人还是不多,作者官网以及测试用例用coffee script 做demo ,实在不感冒.所以我在自己把每个api 测试一把,回头奉上,所以今天的博客注定又是不完整的,现在开始写,争取做一个完整示例来说比较好.

angular 系列十 使用 bootstrap 快速创建博客模板

angular.js 系列不会断,但是中间会乱七八糟的插入一些知识点,距离上次的系列九已经太遥远.上次把路由映射模板,模板指定控制器简单演示了一下.今天我们其实就是把模板用bootstrap页面套一下,让它华丽转身.源码就不贴了,回头会吧 github的开源地址贴上.控制台 gulp 启动 ,自动装载blog/list 模板.blog/list 路由首先装载了 母版页 blog_layout.html (你看到的页头和页面右侧部分)最左侧对应一个ui-view="container" 装载 blog_list.html 模板 (你看到的左下侧部分)

一个方法让node.js 自动加载某个目录的代码(省去require引用)

在写node.js引用的时候,常常面临下面的一个困扰...不论是数据层,逻辑层,添加一个js文件或者暴露一个方法,当你想用的时候,在目标页必须 request 此文件才能使用被暴露的方法.我们是不是可以写一个方法,自动加载某个指定文件夹下的js文件呢?答案是肯定的.这样的好处:我只需要引用这个装载文件后(自动加载目录js 的代码文件) 以后随便你添加方法或者文件,都不影响之前的代码,从而就可以直接使用,是不是很爽....下面来完成这个一劳永逸的代码文件.varfs=require('fs'); var path = __dirname; var self = __filenam

如何从数据组里查找一个元素所在的位置

如何从数据组里查找一个元素所在的位置有2种应用场景:一:把一个新元素插入到指定数组 (数组元素按序排列)二:找出数组是否包含某个元素,找到他的位置第一种情况必须要求元素是按序排列的,否则我们无法给预定元素找到它的位置.vara=[1000,2000,2018,2909,3000,4000,4210,4390,5000]; varb=4500;思路:假设数组元素升序排列我们只需要找到第一个大于插入值的元素即可,目标元素就在此元素前一个位置.方法:遍历元素,找到第一个大于或者等于插入值的元素位置.下面实现了一个通用的遍历数组元素比较方法functioncommonFind(arr,aim){ va

angular 系列七 ui-router路由控制器介绍

angularUI 在不断发展过程中已经被划分成了几个模块,你可以选择你需要的模块载入,我们今天要了解一下路由控制器 ui-router ,它就是angularUI划分出出来的一个独立模块.此模块只关注状态,在整个用户界面导航中,一个状态对应一个视图,开发者可以根据URL状态来组织控制界面UI渲染.这里和后端开发有一点点区别需要注意:后端: 以node.js使用express框架的web开发为例,当我们定位一个路由,对应的会去服务端请求相应资源,服务器端接收请求,解析路由,然后做一系列逻辑处理,最后指定一个视图返回客户端.url —> 路由 —> 逻辑处理 —> 替换视图 —

随笔 - 2015年春节前夕

疯狂的年末又一次来袭,各种需求,赶工,加班,好像春节后要进入世界末日了.所以这几天连更新blog的时间都很紧,当然也是借口,我完全可以不睡觉去写一篇嘛,哈哈...原本打算把cordova 生成android 和 ios webApp写一下,可惜手头的工作打断了.之前的博文大部分是随笔,想到哪写到哪,所以也没有留住固定的读者,至今每日新访客占到90%左右.其实这样并不好,大家就好比匆匆过客,突然尿急,前面隐约看到一个"公厕" ,然后痛痛快快"上"完,当然大部分临走的时候还是"冲"了一下,哈哈.所以.我是不是该把一个系列从"He

git reset revert 回退回滚取消提交返回上一版本

总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面2种情况:1.没有push这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令reset gitreset[--soft|--mixed|--hard上面常见三种类型--mixed会保留源码,只是将git commit和index 信息回退到了某个版本.gitreset

Mac OS X 10.10 brew报错 bad interpreter: No such file or directory

今天尝试用brew 安装bzr ,结果悲剧的是直接报错!zhangzhi@moke:~$brewinstallbzr /usr/local/bin/brew:/usr/local/Library/brew.rb:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:badinterpreter:Nosuchfileordirectory /usr/local/bin/brew:line26:/usr/local/Library/brew.rb:Undefinederror:0网上找一下,原来是 MAC OSX 1

git 本地仓库和远程仓库及本地分支和远程分支简介

之前一篇关于 git简易使用笔记 点击查看,今天的内容就是作为一个补充,主要说一下git 操作本地仓库/远程仓库及本地分支和远程分支.从远程git仓库签出代码: $ git clone git://aaa.com/git_project.git (远程git服务器项目所在地址)当你需要克隆远程项目到本地时,默认会把项目保存在名为 git_project 文件夹下面.你也可以指定本地的一个空文件夹cccgit clone git://aaa.com/git_project.git ccc$ git remote -v查看远程仓库$ git remote add [远程仓库名] [远程git服务

node.js 下依赖Express 实现post 4种方式提交参数

上面这个图好有意思啊,哈哈, v8威武啊....在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据.上上一篇说到了关于http协议里定义的4种常见数据的post方法,详细介绍请点击查看.分别是这四种:www-form-urlencoded,form-data,application/json,text/xmlExpress 依赖 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-www-form-urlencoded, multipart/form-data.可惜对xml没有支持,需要自己代码来

AngularJS双向绑定 - 免费入门教程

angular.js快速开始在这一步你会增加一个让用户控制手机列表显示顺序的特性。动态排序可以这样实现,添加一个新的模型属性,把它和迭代器集成起来,然后让数据绑定完成剩下的事情。请重置工作目录:git checkout -f step-4你应该发现除了搜索框之外,你的应用多了一个下来菜单,它可以允许控制电话排列的顺序。步骤3和步骤4之间最重要的不同在下面列出。你可以在GitHub里看到完整的差别。模板app/index.htmlSearch:<inputng-model="query"> Sortby: <selectng-model="orde

angular基础入门学习 迭代器

我们的应用现在有了一个搜索框。注意到页面上的手机列表随着用户在搜索框中的输入而变化。步骤2和步骤3之间最重要的不同在下面列出。你可以在GitHub里看到完整的差别。控制器我们对控制器不做任何修改。模板app/index.html<divclass="container-fluid"> <divclass="row-fluid"> <divclass="span2"> <!--Sidebarcontent-->       Search: <input ng-model="

You have not concluded your merge (MERGE_HEAD exists) git拉取失败

今天获取git线上仓库代码报了这个错误:zhangzhi@moke:~/code/ktsg-api$gitpull Youhavenotconcludedyourmerge(MERGE_HEADexists). Please,commityourchangesbeforeyoucanmerge.错误可能是因为在你以前pull下来的代码没有自动合并导致的.有2个解决办法:1.保留你本地的修改git merge --abortgit reset --merge合并后记得一定要提交这个本地的合并然后在获取线上仓库git pull2.down下线上代码版本,抛弃本地的修改不建议这样做,但是如果你本地修

mongoose 连接查询控制副本集等操作引导

引用自:https://cnodejs.org/topic/5206581b44e76d216aae072e之前已经有朋友总结了mongoose的一些内容,推荐他的文章,包含了主干部分,这是接着后面写的。接下来是翻译自mongoose guide#Queries文件可以通过一些静态辅助模型的方法检索。任何涉及 指定 查询 条件的模型方法,有两种执行的方式:当一个回调函数:被传递,将立即执行的操作结果传递给回调。未被传递,返回一个查询的实例,它为您提供了一个特殊的QueryBuilder接口。让我们来看看在传递一个回调时会发生什么:varPerson=mongoose.model('Pe

sublime text 2 不可多得的插件 - 一介布衣

Sublime Text以其轻巧,漂亮和强大的功能被广大程序员所喜爱,完善的插件,代码缩略图,多窗口切换等,真是不可多得的一款跨平台编辑器.Sublime Text 2是一款共享软件,免费和收费的差别仅仅是偶尔会跳出一个购买弹出框.插件安装要使用Package Control组:在线安装方法按Ctrl+`调出console粘贴以下代码到底部命令行并回车:importurllib2,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos

.gitignore设置 git忽略跟踪文件和文件夹

出自linux之父的强大代码管理工具 git 不用多说,使用起来也相当顺手,对于有些资源我们不想跟踪或者某一类资源,该如何屏蔽掉,这就要使用到了 .gitignore 文件.应用场景:1)或略根据,避免提交到代码库的文件或者目录2)指定跟踪,跟踪某一个文件配置语法:1)以“/”开头表示目录;2)以“?”通配单个字符3)以“*”通配多个字符;4)以方括号“[]”包含单个字符的匹配列表;5)以叹号“!”跟踪某个文件或目录;  git 对于 .gitignore 配置文件是按行从上到下进行规则匹配的,如果前面的规则匹配的范围更大,则后面的规则将不会生效;2、示例:  规则:.DBStore/*   

mongoDB启动报错 ERROR: child process failed, exited with error number

上面这个错误是今天下午发现,从github down下一个应用,在应用启动前需要redis 启动服务,mongodb启动服务,所以当启动mongodb的时候悲剧出现了:zhangzhi@moke:~$mongod--dbpath=/data/club--port=27017--fork--logpath=/var/log/mongodb/mongodb.log abouttoforkchildprocess,waitinguntilserverisreadyforconnections. forkedprocess:43110 alloutputgoingto:/var/log/mongodb

Angular 基础学习教程

我们现在开始准备编写AngularJS应用——phonecat。这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用。进入angular-phonecat目录,运行如下命令:gitcheckout-fstep-0该命令将重置phonecat项目的工作目录,建议您在每一学习步骤运行此命令,将命令中的数字改成您学习步骤对应的数字,该命令将清除您在工作目录内做的任何更改。运行以下命令:nodescripts/web-server.js来启动服务器,启动后命令行终端将会提示Http Server running at http://lo

node.js 下给字符串生成一个哈希散列值

我们常常对一个拼接的变量进行映射,让一个变量通过一定的算法得出一个可控的结果然后在操作.比如淘宝的分布式存储,淘宝会根据注册用户ID对64取模,结果肯定是小于64的数,就可以根据此数来确定用户信息存储在64台服务器中的哪一台.这里一个前提是会员ID是数值型,如果是字符串怎么办?本文要解决的就是这个问题.思路:给字符串求哈希散列码, 然后对固定数值求模,最后确定该把数据存储到那台服务器上.node.js 下有很多求哈希散列值的模块,本文用到的是fnv-plusgithub 地址:https://github.com/tjwebb/fnv-plus npm 安装模块(这里就省略不说了)使用:var

【随笔】javascript 超越 ruby 稳坐 github 第一把交椅

Github 托管这各式各样的开源项目,编程语言多种多样,当长久以来Ruby语言开发的项目居首.原因是因为Github 本身就是由Ruby 社区诞生出来的,所以长久以来它是Ruby的大本营.逐渐其他语言开发的开源项目也托管过来,久而久之语言种类越来越多,但是从未撼动过Ruby 的地位.但是到目前为止,javascript已经在github上稳坐第一把交椅,我个人认为是这几点因素:(1)如今前端javascript以垄断形式抢占web浏览器,可见前端javascript 工程师一抓一大把.(2)2009年发布至今的node.js 运行在服务器后端环境的javascript,以前得天独厚的web开

【随笔】关于 npm 命令使用的好习惯

有关npm的几个使用习惯,逐渐完善中。。我们开发中经常用到npm来管理第三方包,如果你觉得国外环境下载第三方包不是很快,可以换成国内的npm源,npm换国内源,使用过程也相对简单,本项目私有的包会选择 npm install async ,如果全局共享安装会使用 npm install -g async其实 npm 的实际功能远远超过我们实用的这几招。1.npm 帮你完成package.json 文件,在一个node.js 文件中 package.json 文件的重要性不必多说,如果你还不明白,赶紧google一下。如何完善:mkdirblog cdblog npminit前2句命令是创建项目

控制异步回调利器 - async 串行series,并行parallel,智能控制auto简介

async 作为大名鼎鼎的异步控制流程包,在npmjs.org 排名稳居前五,目前已经逐渐形成node.js下控制异步流程的一个规范.async成为异步编码流程控制的老大哥绝非偶然,它不仅使用方便,文档完善,把你杂乱无章的代码结构化,生辰嵌套的回掉清晰化.async 提供的api包括三个部分:(1)流程控制 常见的几种流程控制.(2)集合处理 异步操作处理集合中的数据.(3)工具类 .github 开源地址:https://github.com/caolan/async安装方法: npm install async使用方法: var async=require('async')

npm install canvas 各种依赖,各种错误 转投npm install ccap 来生成验证码

canvas 模块是npm提供的一个第三方包,国内环境安装慢的话请给npm换国内源,点击查看,用来生成图片.在本博客的应用场景是生成验证码.前端时间阿里云上使用 ubuntu 系统,本地mac OS ,安装 canvas 及各种依赖貌似很顺利,最近从ubuntu 换到了 centOS 后,进过几小时的挣扎,canvas 环境还是没有安装成功!他的依赖很多,最好按照官方wiki提供的文档来安装.wiki文档地址:https://github.com/LearnBoost/node-canvas/wikiwiki 提供的安装向导包括2部分,红框内的为不同操作系统需要安装的依赖. 红框下面是云环境需

mac 如何设备全局变量$PATH

Unix加载环境变量来自3种配置文件.首先加载 /etc/profile 系统全局变量.接着是其他系统配置文件 如/etc/bashrc最后是用户自定义配置文件 ~/.bash_profile前2个是系统级的,针对所有用户,非root用户只有可读权限,修改时需要 sudo 获取root权限.而最后一个是针对当前用户的配置文件,建议修改此文件,如果当前用户目录下没有此文件 ,nano ~/.bash_profile 创建一个.如何给系统设置全局变量?加入你安装了mongoDB ,想在mac中添加mongod (服务端) mongo (客户端) 的全局环境变量.(1)首先找到你的mongoDB安装

Git 简易使用笔记

git add . 会把当前目录中所有有改动的文件(不包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交git add * 会把当前目录中所有有改动的文件(包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交所以在有要忽略的文件(如:配置文件之类的)有做修改的时候git add .可以正常工作,会把所有非忽略的所有有改动的文件添加到缓冲区git add *则会报错,且此几命令不会添加任何文件到缓冲区本地代码添加修改首先(1) git add . 从本地代码文件夹添加到索引目录.(2) git commit -m”提交描述信息” 从代码索引目录提交到HEAD目录

同一台电脑关于多个SSH KEY管理

使用环境:关于同一台电脑LInux系统下使用多个SSH key 切换使用(或者多用户使用ssh提交代码)要求,可以创建不同的 PUBLIC KEY ,根据下面步骤设置.(1)比如有aaa,bbb,ccc 三个帐号需要生成不同的 PUBLIC KEY$ssh-keygen-trsa Generatingpublic/privatersakeypair. Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaa Enterpassphrase(emptyfornopassphrase): Entersamepassp

回到顶部