node.js小記

Node.js 不是一種獨立的語言,與PHP、Python、Perl、Ruby的“既是語言也是平臺”不同

也不是一個 JavaScript 框架, 不同於CakePHP、Django、Rails

更不是瀏覽器端的庫,不能與瀏覽器端, jQuery、ExtJS的庫相提並論

Node.js 是一個讓 JavaScript 運行在服務端的開發平臺,它讓 JavaScript 成爲腳本語言世界的一等公民,在服務端堪與 PHP、Python、Perl、Ruby 平起平坐。

<span style="font-family: Arial, Helvetica, sans-serif;">第一章、</span>
<span style="font-family: Arial, Helvetica, sans-serif;">var http=require('http');   首先獲取node.js 原生http模塊對象</span>
http.createServer(function(req,res){
<span style="white-space:pre">	</span>res.writeHead(200,{'Content-Type':'text/html'});/*接收內容格式*/
<span style="white-space:pre">	</span>res.write('<p>kerry is beauty!</p>');
<span style="white-space:pre">	</span>res.end('oh__ohohohoh');/*結束內容接受,必須寫否者瀏覽器會一直在加載狀態*/
}).listen(3000);  /*監聽本地ip,3000端口*/
console.log('test1 0k!');
本篇只是因爲小白最近在學習node.js,所以單獨寫了一篇來記錄學習筆記,有不對的希望大家多多提出,後續一定更正,謝謝!!<img alt="大笑" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif" />

第二章、req對象有addListener()方法,並攜帶兩個時間‘data’和‘end’ 兩個事件(ps:必須是字符串格式 )

  data是有數據傳到服務器時候是觸發 的時間    end是客戶端傳遞完成所有數據後觸發的時間

querystring字符串處理

dns.resolve


第2.1.5章

exports 和module.exports的作用是把文件模塊的方法暴露給require返回的對象中進行調用。但是兩者還是有一些本質的區別,exports的屬性和方法都可以被module.exports替代,所有的exports對象最終是通過module.exports傳遞執行,確切的是exports是給module.exports添加的屬性和方法


socket.io 雙向傳值例子

index_client.html

<html>  
<head>  
    <title></title>  
    <script src="./node_modules/socket.io-client/socket.io.js"></script>  

    <script type="text/javascript">  
        function doit() {  
            var socket = io.connect('http://localhost:3000');  
            socket.on('news', function (data) {//接收到服務器發送過來的名爲'new'的數據  
                console.log(data.hello);//data爲應服務器發送過來的數據。  
                socket.emit('my new event', { my:'new data' });//向服務器發送數據,實現雙向數據傳輸  
            });  
            socket.on('other', function (data) {//接收另一個名爲'other'數據,  
                console.log(data.hello);  
                socket.emit('my new event', { my:'other data' });  
            });  
        }  
    </script>  
</head>  
<body>  
<button id='btn' οnclick="doit()">click me</button>  
</body>  


index_server.js

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(3000);

function handler (req, res) {
  fs.readFile(__dirname + '/index_client.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.on('connection', function (socket) {
  socket.emit('other', { hello: 'world1' });
  socket.on('my new event', function (data) {
    console.log(data);
  });
});
這樣一個socket.io的例子就好了

supervisor 可以幫助你實現這個功能,它會監視你對代碼的改動,並自動重啓 Node.js。使用方法很簡單,首先使用 npm 安裝 supervisor:$ npm install -g supervisor如果你使用的是 Linux 或 Mac,直接鍵入上面的命令很可能會有權限錯誤。原因是 npm需要把 supervisor 安裝到系統目錄,需要管理員授權,可以使用 sudo npm install -gsupervisor 命令來安裝。接下來,使用 supervisor 命令啓動 app.js:$ supervisor app.js


function callback(err,data){   將文件內容作爲函數的返回值賦給data變量

if(err){

console.log(err);

}else{

console.log(data);

}

}

fs模塊是對文件的處理    fs.readFileSync('file.txt', 'utf-8' ,callback);   有三個參數,一個是文件名,第二個是編碼格式,第三個是回調函數 這個是同步讀取文件

fs.readFile('file.txt', 'utf-8' ,callback);   異步讀取文件


require 不會重複加載模塊

發佈了26 篇原創文章 · 獲贊 40 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章