2014年8月1日 星期五

NodeJS Send Request

NodeJS 發送HTTP請求套件


1. 在package.json 加上request項目

package.json


{
  "name": "englistNodeServer",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.2.6",
    "jade": "*",
    "less-middleware": "*",
    "socket.io" : "1.0.6" ,
    "request" : "2.39.0"
  }
}

2. 打開node.js命令列,進入package.json 同層資料夾下
  • npm install

3. 編輯檔案  app.js

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
  }
})


4. 啟動app.js
  • node app.js

即可看到回覆內容



2014年7月30日 星期三

nginx + tomcat + memcached (windows) 反向代理、負載平衡、sessione共享

環境:
OS : winsows7
JDK : 7


準備軟體

Server
JAR
NOTE: 注意用太新版本的jar反而會錯,tomcat會啟動不了。

資源列表:

memcached在client可用:

1.解壓 nginx、 tomcat、memcached

2. 將下載的 jar 放置 兩個  tomcat 的  /lib 底下

3.安裝 memcached
  • 管理員開啟命令列,執行 memcached.exe –d install 。
查詢啟動:
  • tasklist /fi "imagename eq memcached.exe"


  • 可以進到管理中將其改為手動啟動。

預設的port是 11211

指令:
     -p 監聽的Port   
     -l 連接的IP地址, 預設是本機  (localhost)
     -d start 啟動memcached服務
    -d restart 重起memcached服務
    -d stop|shutdown 關閉正在運行的memcached服務
    -d install 安裝memcached服務
    -d uninstall 卸載memcached服務
    -u 以的身份運行(僅在以root運行的時候有效)
    -m 最大記憶體使用,單位MB。默認64MB
    -M 記憶體耗盡時返回錯誤,而不是刪除項目
    -c 最大同時連接數,默認是1024
    -f 塊大小增長因子,默認是1.25
    -n 最小分配空間,key+value+flags 預設是48
    -h 顯示幫助

Note:windows7要使用管理員開啟命令模式

2014年7月20日 星期日

Java MongoDB find _id


搜尋條件必須用 ObjectID(  ),直接用String 會找不著。

BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(roleID));



2014年7月17日 星期四

Java Mongo Drivers Normal Authentication 一般驗證

OS : win7
mongoDB  :   2.6
MongoDB Drivers :  2.12.2
Language:Java


package global.db;


import java.net.UnknownHostException;

import java.util.Arrays;

import javassist.bytecode.stackmap.TypeData.ClassName;


import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;

import com.mongodb.DB;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;

/**

 * @author hua
 * 處理 mongoDB 基礎連線建立 
 */
@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {

private static Logger logger = Logger.getLogger(ClassName.class);

@Value("${mongo.host}")
private String host;

@Value("${mongo.port}")
private int port;

@Value("${mongo.dbName}")
private String dbName;

@Value("${mongo.user}")
private String user;

@Value("${mongo.pwd}")
private String pwd;

private MongoClient mongoClient;

public MongoConnection() throws UnknownHostException {
super();
}

/**

* 建立連線
*/
private void buildConnection()throws UnknownHostException{
try {
MongoCredential credential = MongoCredential.createMongoCRCredential(this.user, this.dbName, this.pwd.toCharArray());
MongoClientOptions options = getOption();
ServerAddress address = new ServerAddress(this.host, this.port);
mongoClient = new MongoClient(address, Arrays.asList(credential), options);
logger.info("--------------------MongoDB 驗證成功");
} catch (UnknownHostException e) {
logger.error("MongoDB 建立連線失敗!");
if(mongoClient != null){
mongoClient.close();
}
throw e;
}
}
//線程等待數量  * 主機最大連線數  = pool 數量
protected MongoClientOptions getOption(){
return new MongoClientOptions.Builder()
       .threadsAllowedToBlockForConnectionMultiplier(300) //線程等待的數量
       .connectionsPerHost(10) //主機最大連線數
       .connectTimeout(5000)
       .build();
}

/** 取得DB操作物件
* @return
* @throws UnknownHostException
*/
public DB getDB() throws UnknownHostException {
synchronized (this) {
if(mongoClient == null){
buildConnection();
}
}
return mongoClient.getDB(this.dbName);
}
}



Note :
  •  mongo 現在版本,建議使用MongoClientOptions 而不要再使用MongoOptions。
參考文件:



MongoDB MongoClient 與 Mongo

OS : win7
mongoDB  :   2.6
MongoDB Drivers :  2.12.2
Language:Java


  • MongoClient 與 Mongo 是mongoDB Driver  是連線管理物件,具有連線池功用。
  • Mongo 目前 Drivers API 有提到,請不要再使用Mongo,而因改用MongoClient來建立連線。

    此段引用mongoDB官方API 文件

    Mongo(MongoURI uri)
    Deprecated.

    可以看見,文件告知改用MongoClient吧。
  • MongoClient 繼承自  Mongo。

參考:

spring bean scope annotation


@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {
    .
    .
    .
}


SCOPE
  • BeanDefinition.SCOPE_SINGLETON     or  "singleton "
  • BeanDefinition.SCOPE_PROTOTYPE    or   "prototype "
  • "request"
  • "session" 
  • "globalSession "

Reference 

2014年7月16日 星期三

bootstrap 3.2 修改 Media queries breakpoints

1. 打開  /bootstrap/less/variables.less

2. Ctrl + F  , 輸入  screen

3 . 修改

  • @screen-xs  :   320px;
  • @screen-sm :   768px;
  • @screen-md :   1024px;
  • @screen-lg    :   1200px;
4. 存檔

5.  開啟 nodejs 命令介面

6  輸入:  grunt dist         (做編譯)