Unix命令-mdfind

发布在 Unix

这个mac上特有的命令,当然其他的*nix也会有相类似的命令。它和find命令功能相同,但是它是使用Spotlight索引的。它可以让你在数秒内查询你的整个文件系统。你可以使用它来即时展示满足条件的新增文件的更新情况。我经常使用它来查询应用在隐蔽的位置存储的重要文件。

1
> mdfind -name homebrew
/usr/local/Library/Homebrew
/Users/job/Library/Logs/Homebrew

注释和共享

写给使用node.js+mongodb的新人

准备工作

1
npm install mongodb

这是我们接下来要使用的一个第三方模块

组件下载

请点击:github

将此组件放到你项目目录下

1
config.js //数据库配置文件
DataProvider.js //普通文档数据操作方法文件
BinaryProvider.js //文件操作方法文件

使用方法

  • 配置config.js为你需要操作的数据库
  • 在/modules/dao文件夹下新建一个js文件,如UserProvider,其中this.collectionName为你选择的表名称
  • 新建一个userTest.js 引入组件

    1
    var UserProvider=require('./module/dao/UserProvider').UserProvider;
    var userProvder=new UserProvider();

文档数据操作

插入操作
1
function insert(){
    userProvder.insert({name:"yuansc"},{},function(err,result){
        console.log(err,result)
    })
}

这样你便完成插入一条名为{name:yuansc}的数据

查询操作
1
function find(){
    userProvder.find({name:'yuansc'},{},function(err,result){
        console.log(err,result)
    })
}

这样写便可以查询出你想要的数据,提示:你查询出来的result为数组

单条查询
1
function findOne(){
    userProvder.findOne({name:'yuansc'},{},function(err,result){
        console.log(err,result)
    })
}

这样可直接查找单条数据,result为json格式

其他

其他操作方式大家请看DataProvider.js有很多,,

文件操作

引入
1
var BinaryPrivider=require("../../module/BinaryProvider").BinaryProvider;
var binaryProvider=new BinaryPrivider();
存储图片
1
function save() {
    fs.readFile(path, function (err, data) {
        if (err) {
            console.log(err)
        } else {
            var imageID = new ObjectID();
            binaryProvider.write(data, fileType, filename, imageID, function (err, result) {
                if (err) {
                    console.log(err);
                } else {
                    console.log("success")
                }
            })
        }
    })
}

存取图片之前要先将图片转化为binary数据,然后通过write方法写入。fileType为文件类型,fileName为文件名称,imageID为生成的唯一标识

读取文件
1
function getPicture(){
    binaryProvider.read(new ObjectID(id),function(err,binaryData,fileType){
        if(err || result==null || result.length==0){
            console.log(err,result)
        }
        else
        {
           console.log("")
        }
    })
}

这是读取 id为数据库存储时的唯一标识
读取的数据位binary数据,你需要通过fs模块存储为文件,或者可直接将数据发送出去

注释和共享

async的使用

发布在 node.js

用过node.js 有时候一定会为js的异步问题感到头痛,
之前写过一篇博客是用递归解决异步问题的,node.js使用递归解决异步性问题
这次要给大家介绍的是 一个第三方库 async

安装

1
npm install async

引用

1
var async=require('async');

基本语法

解决多个无关函数的异步问题
1
async.series({
    1:function(done){
        console.log(1);
        done();
    },
    2:function(done){
        console.log(2);
        done();
    },
    3:function(done){
        console.log(3);
        done()
    }
},function(err){
    console.log(err);
})

如上3个方法会依次执行,需要注意

  1. 当每个方法执行完之后,必须通过调用回调来表示已执行完当前方法,才会继续执行;
  2. 最后的是用来捕获异常,出现异常不会继续向下执行;
大量相同数据的处理

这跟上面的我写的递归解决是同样的思想,只不过代码更为简洁明了

1
var array=[1,2,3,4,5]
var itreator=function(item,finish){
    console.log(item);
    finish();
}
async.eachSeries(array,itreator,function(err){
    console.log("all finish");
})

上面代码中当出现异常,和所有执行结束后到会执行最后的

1
console.log("all finish");

跟之前的相似,出现异常不会向下执行,同样的对于正常情况下,只有所有数据都处理完后才会输入“all finish”;

参考文献

同样还有很多处理方式异步同步交叉使用等等吧,
本人用的不是很多,
还有其他的很多方法,这是我比较常用的,其他方式的使用请见 :
官方github
更多Demo

注释和共享

解决页面缓存问题

发布在 web

写代码难免遇到页面缓存问题,特别对于拥有用户概念的系统来说,
下面介绍一种解决一种禁用页面缓存的方法
在每个ajax请求或者get请求的后面都加上一个随机参数,比如

1
"/admin?command=login&time="+Date.now()

这样每次发送的请求肯定不一样,所以浏览器就不会调用缓存,就达到了禁用缓存的作用。

注释和共享

  • 第 1 页 共 1 页

yuansc

生命不息,奋斗不止


改变世界