分类目录归档:nodejs

bower简明入门教程

什么是bower

Bower是twitter 推出的一款包管理工具,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。

MAC安装bower

brew install bower

PS:brew安装会自行安装bower需要的依赖环境,如果本机安装了node和git环境,也可以通过下面的命令安装

npm install -g bower

安装完之后输入如下命令

bower -help

会出现如下的截图WechatIMG61

bower初始化

先看一下我本机的目录

WechatIMG62

在bower目录下创建.bowerrc文件,并在文件中添加如下内容

{
	"directory" : "bower_extensions"
}

然后执行初始化命令

bower init

然后根据提示输入对应的内容~~最后会生成bower.json文件,里面保存的就是刚才输入的信息。WechatIMG63

包的安装

下面我们来安装第一个js包,输入如下命令:

bower install jquery

这时候就会在刚才设置的目录中保存了jquery的文件~~ 注意下面的命令,会在bower.json文件中dependencies的节点保存一行刚才安装的jquery信息

bower install jquery --save

当然也可以通过下面的方式安装

# installs the project dependencies listed in bower.json
$ bower install
# registered package
$ bower install jquery
# GitHub shorthand
$ bower install desandro/masonry
# Git endpoint
$ bower install git://github.com/user/package.git
# URL
$ bower install http://example.com/script.js

 包的更新

上面安装的是最新版的高版本jquery,假如想要兼容低版本浏览器的呢?
已经查到兼容低版本浏览器的jquery版本为1.11.3,下面直接修改bower.json文件中的jquery版本号如下:

  "dependencies": {
    "jquery": "~1.11.3"
  }

然后执行如下命令

bower update

这时候,刚才下载的jquery就已经换成1.11.3的版本了~~

其它命令

bower info jquery   包的信息查看
bower search bootstrap  包的查找
bower uninstall jquery   包的删除
bower home 打开在bower.json中设置的homepage

更多详细的命令,请访问官方文档~~https://bower.io/docs/api/

golang,java,python,nodejs,php计算斐波那契数列速度对比

同样的程序,这五种语言速度对比。java速度最快,其次golang,nodejs,python,php。在这里php,python已经与前面的语言不在同一个级别了。据说python可以在速度上优化一下,但我现在还处于对python了解阶段。并没有过多的深入研究。 继续阅读

nodejs上传图片

方法一:

exports.upload = function(req, res){
    //引入必要的包
    var fs = require('fs');
    var path = require('path');

    //获取上传的文件名称,路径
    var fileName = req.files.image.filename;
    var tmp_path = req.files.image.path;
    var target_path = __dirname + "/upload/" + fileName;

    //判断文件是否存在
    path.exists(tmp_path, function(isExist){
        if (isExist){
            //在这部执行将tmp下的图片重名到指定的目录下
            fs.rename(tmp_path, target_path, function(err){
                if (err){
                    console.dir(err); //如果这里打印出错误,请查看target_path路径
                };
            });
        } else {
            console.log("No");
        }
    });

    console.dir(req.files);

    //Redirec index.
    res.redirect("/");
}

方法二:

exports.upload = function(req, res){
    var fs = require('fs');
    var path = require('path');
    var util = require('util');
    var fileName = req.files.image.filename;
    var tmp_path = req.files.image.path;
    var target_path = __dirname + "/upload/" + fileName;

    path.exists(tmp_path, function(isExist){
        if (isExist){
            ins = fs.createReadStream(tmp_path);
            ous = fs.createWriteStream(__dirname + "/upload/" + fileName);
            util.pump(ins, ous, function(err){
                console.dir(err);
                });
        } else {
            console.log("No");
        }
    });

    console.dir(req.files);
    //Redirec index.
    res.redirect("/");
}

注意:方法一可以在使用完后,不用删除tmp下的图片,它会自动删除tmp下的文件。但是方法二,要手动删除tmp下的图片。