script javascript / Node.js / nodejs / GraphicsMagick / sails

s

Node.js

http://baike.baidu.com/view/3974030.htm

Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

[1]  Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。

Nodejs 安装问题汇总

http://www.oschina.net/question/199491_38172

我在suse上编译安装nodejs 0.6.10,configure时提示: 

Checking for openssl                           : not found 

Checking for function SSL_library_init   : not found 

Checking for header openssl/crypto.h   : not found 

/usr/local/src/node-v0.6.10/wscript:374: error: Could not autodetect OpenSSL support. Make sure OpenSSL development packages are installed. Use configure --without-ssl to disable this message. 

但我已经安装过openssl,问题如下: 

1)请问configure时怎样设置,才能找到openssl呢? 

2)如果使用--without-ssl,编译时会出现zlib_dev找不到,又改如何处理呢? 

解决方案:yum install gcc-c++ openssl-devel , ok

Linux下Nodejs安装(完整详细)

http://my.oschina.net/blogshi/blog/260953

   很久之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录。

    首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件。我就是按照网上源码的安装方式去操作编译后的文件,结果坑了好久好久。

script javascript / Node.js / nodejs / GraphicsMagick / sails

    注意看好你下载的是什么文件!!!对应的安装方式不同啊,亲。

(一) 编译好的文件

    简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了。

cd node-v0.10.28-linux-x64/bin
ls
./node -v

    这就妥妥的了,node文件夹具体放在哪,叫什么名字随你怎么定。然后设置全局:

ln -s /home/kun/mysofltware/node-v0.10.28-linux-x64/bin/node /usr/local/bin/node
ln -s /home/kun/mysofltware/node-v0.10.28-linux-x64/bin/npm /usr/local/bin/npm

    这里/home/kun/mysofltware/这个路径是你自己放的,你将node文件解压到哪里就是哪里。

(二)通过源码编译

    这种方式你下载的文件是Source code,我不太喜欢这种方式。。。主要是麻烦

#  tar xvf node-v0.10.28.tar.gz #  cd node-v0.10.28 #  ./configure # make # make install # cp /usr/local/bin/node /usr/sbin/ 

查看当前安装的Node的版本 
# node -v 
v0.10.28

编译软件 make 
安装编译软件 make install
了解编译模块 make clean
卸载编译软件 make uninstall

(三)apt-get

    还有一种就是shell提示的apt-get方式,我之前就被这种方式坑了。。。强烈不推荐啊

sudo apt-get install nodejs
sudo apt-get install npm

    这么装完你会发现,node命令好使,nodejs命令可以用。。。

end

Node.js 对图片进行裁切、缩放 

GraphicsMagick

GM : GraphicsMagick for node.js

首先得安装 GraphicsMagick 或者 ImageMagick

然后执行:

[plain] view plain copy
 
  1. $ sudo npm install gm  

我安装的是ImageMagick,在ubuntu系统下快速安装:

[plain] view plain copy
 
  1. $ sudo apt-get install imagemagick  

HOW TO USE

GM 文档:http://aheckmann.github.io/gm/docs.html

使用ImageMagick

[javascript] view plain copy
 
  1. var imageMagick = gm.subClass({ imageMagick: true });  
然后就像文档中使用gm那样使用ImageMagick即可(举个例子)
[javascript] view plain copy
 
  1. imageMagick("img.png").resize(300, 100).autoOrient().write('/path', callback);  

Example (nodejs + Express)

[javascript] view plain copy
 
  1. var gm = require('gm')  
  2. ,   fs = require('fs')  
  3. ,   imageMagick = gm.subClass({ imageMagick : true });  
  4.   
  5. exports.imgUpload = function(req, res) {  
  6.     res.header('Content-Type', 'text/plain');  
  7.     var path = req.files.img.path;  //获取用户上传过来的文件的当前路径  
  8.     var sz = req.files.img.size;  
  9.     if (sz > 2*1024*1024) {  
  10.         fs.unlink(path, function() {    //fs.unlink 删除用户上传的文件  
  11.             res.end('1');  
  12.         });  
  13.     } else if (req.files.img.type.split('/')[0] != 'image') {  
  14.         fs.unlink(path, function() {  
  15.             res.end('2');  
  16.         });  
  17.     } else {  
  18.         imageMagick(path)  
  19.         .resize(150, 150, '!') //加('!')强行把图片缩放成对应尺寸150*150!  
  20.         .autoOrient()  
  21.         .write('public/images/user/'+req.files.img.name, function(err){  
  22.             if (err) {  
  23.                 console.log(err);  
  24.                 res.end();  
  25.             }  
  26.             fs.unlink(path, function() {  
  27.                 return res.end('3');  
  28.             });  
  29.         });  
  30.     }  
  31. };  

上面只是index.js文件的部分核心代码

点击去下载完整Example 

sails

https://www.oschina.net/p/sailsjs 

Sails.js 就像是 Node.js 平台上的 Rails 框架。这是一个可靠可伸缩的开发框架,面向服务的架构,提供数据驱动的 API 集合。用来开发多玩家游戏、聊天应用和实时面板引用非常方便,也可用于开发企业级 Node.js 应用。Sails.js 基于 Node.js, Connect, Express 和 Socket.io 构建。

Sails.js中文文档

http://sailsdoc.swift.ren/

http://www.cnblogs.com/simadi/p/5907144.html

Sails.js是一个Web框架,可以于轻松构建自定义,企业级Node.js Apps。它在设计上类似于像Ruby on Rails的MVC架构的框架,但支持更加现代化, 面向数据风格的Web应用开发。它特别适合于开发实时特性的应用如聊天。Sails.js 基于 Node.js, Connect, Express 和 Socket.io 构建。

【教程】利用Sails.js+MongoDB开发个人博客系统(5章更新完)

http://cnodejs.org/topic/55b1efff692e0e7706b366b5

Sails是构建于Express之上的一个实时Node MVC框架,其整个风格来源于Ruby on Rails,包括提供了类似于Rails的脚手架功能,同时又吸纳了不少现代web app工具和功能,比如grunt和websocket等。

显然,Sails的最佳应用场景会是一些实时性较强的场景,比如聊天室,游戏等,但是官方也笃定的认为sails适用于任何web app的开发。对于web之前我已经使用过了的php的symfony2和ruby的rails,但在学习了Nodejs之后,我需要一个node的框架进行项目实战,因此,我充满感性的因为那只小章鱼和官网健全的文档选择了sails,这一点都不机智。

end

相关推荐