express套件(三) - 404

1.一開始產生的express
假設輸入錯誤路徑時
網頁會顯現
除了app.get程式有寫判斷
因此我們可以將錯誤網頁路徑導向其他網頁

2.加入404導引function
2-1.
編輯app.js
在裡面加入
app.use(function(req, res, next){
    res.send(404, 'Sorry cant find that!');
});

這個意思就是將所有沒有指定的位置,輸出404 + "Sorry cant find that!"

2-2.
或是不要上面的設定可以使用另外的方式
在app.get最後面在加上
app.get('*', function(req, res, next) {
    res.send('Sorry cant find that.'); 
});
*也是只所有的
所以之前沒有判斷到的都會導到此function裡
因此在app.get裡面可以加入"正規表示法"

express套件(一) - 安裝

1.express的套件類似於MVC
而且他將Post、Get等等網頁常用傳遞資料的方式
自動處理可以直接使用function
可以將code切割成不同網頁

2.安裝express
npm install -g express 
註:在Linux下需要加入sudo

3.建立自己的app
express my_app
下載app所需套件
cd my_app
npm install

4.第一次執行
node app.js

npm操作

1.基本上安裝完node.js都會一起安裝npm

2.npm為node.js的套件管理工具
在網路上有很多人寫好的module
可以在https://npmjs.org/查詢有沒有你所需的套件

3.因此使用npm可以下載別人寫好的套件
節省寫code的時間

4.收尋套件
輸入命令和要收尋套件的名稱
npm search socket.io
第一次收尋通常比較久

5.安裝套件
npm install socket.io

6.列出已安裝套件
npm list

7.更新套件
npm update

8.移除套件
npm uninstall socket.io

9.假設你所開發的app中需要其他套件
app可能會給其他人使用
因此需要使用package.json加入需要使用其他套件的名稱和版號
package.json裡輸入
{
    "name": "application-name",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.2.6",
        "jade": "*"
    }
}
之後輸入
npm install
就會自動安裝你app所需要的套件
註:接下來的指令有分為全域和本地
  全域是由是否加入-g來判定
  也是就是說你想要將express安裝後讓其他使用者可以使用
  就輸入"npm install -g express"
  要看全域有沒有此套件也要使用"npm list -g"才看的到
  有些套件需要安裝到全域上
  例如: node-inspector, express
註:在Linux下因為權限關係
  因此安裝到全域下需要輸入sudo
註:package.json為app紀錄開發者的訊息
  像是app的版號、名稱
  開發者的姓名、email
  所需安裝套件等等

node.js教學

  1. 安裝node.js
  2. 基本node指令操作
  3. npm操作
  4. 雲端編輯環境
  5.  ebook - IT eBooks
  6. 套件
  7. 待續...

基本知識(二) "http"

1.建立網路的程式node.js內建有http的module
因此呼叫出來設定即可

2.基本程式碼
hello_http.js
內容為
var http = require('http');
var ip = '127.0.0.1';
var port = 1337;

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(port, ip);

console.log('Server running at http://' + ip + ':' + port);
執行
node hello_http.js
假設如上面程式碼所示只會監聽127.0.0.1的IP的請求
因此外面請求會無視
要讓外面可以請求
請將IP改成0.0.0.0
  

3.開啟網頁
輸入主機的IP和port有看到便是成功

4.停止執行
我們呼叫http的listen
它會一直監聽直到程式結束
因此需要按下Ctrl+C來強制結束

node.js 基本知識(一) "hello world"

1.node.js是使用javascript執行它的語法
因此可以寫程式為副檔名為js的檔案將它執行

2.建立檔案
hello.js
內容為
console.log("hello, world");
3.執行hello.js
node hello.js

4.在node.js裡每個檔案都是一個獨立的module
因此要讀其他人的檔案(module)
需要使用 exports 和 require 互相溝通
exports 和 require 有好幾種寫法
下面是其中幾種
只要是符合Javascript的寫法都可

5-1.
hello_exports.js
內容為
module.exports = {
    do_a : function(r) {
        console.log( 'This is do_a method of hello_export module, r:' + r);
    },

    do_b : function(r) {
        console.log( 'This is do_b method of hello_export module, r:' + r);
    }
};

hello_requir.js
內容為
var dosomething = require('./hello_exports.js');
var doing_b = require('./hello_exports.js').do_b;

dosomething.do_a('Run');
doing_b('Walk');

執行hello_requir.js
node hello_requir.js 

5-2.
hello_exports.js
內容為
exports.do_a = function(r) {
        console.log( 'This is do_a method of hello_export module, r:' + r);
};

exports.do_b = function(r) {
        console.log( 'This is do_b method of hello_export module, r:' + r);
};

hello_requir.js
內容如同5-1的hello_requir.js和執行

5-3:
hello_exports.js
內容為
module.exports = function(){
    console.log( 'This is module only one method.');
};

hello_requir.js
內容為
var dosomething = require('./hello_exports.js');>
dosomething();
如同5-1的執行

Linux node.js 安裝

1.建置環境
虛擬環境:visual box
Linux版本:Ubuntu server 12.04.2 32bit
網路:NAT+主機網路

2-1.安裝
直接利用apt-get安裝
sudo apt-get install nodejs
打入
node -v
顯示版本號
不過我當下在Ubuntu的版本過舊


2-2.下載原始檔編譯安裝
安裝編譯環境
sudo apt-get install g++ python make
到http://nodejs.org/download/下載原始檔
wget http://nodejs.org/dist/v0.10.11/node-v0.10.11.tar.gz
tar xvf node-v0.10.11.tar.gz
cd node-v0.10.11/
./configure
make
sudo make install
cd ..
node -v