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 不會重複加載模塊