node.js 是一個讓javascript運行在服務端的開發平臺javascript
node.js的環境部署html
1.下載安裝包java
安裝後 打開cmd的dos窗口express
運行node npm
console.log('success')json
編寫一個demo.js並保存到nodejs的安裝目錄裏瀏覽器
consloe.log('學習nodejs')服務器
在dos裏運行demo.js 能夠看到輸出的學習nodejs異步
node.js命令行工具
node -v 查看版本
node -e ‘console.log("hello word")’; 直接運行
node 直接進入編譯模式
console.log('1111')
第一行是輸入、第二行是返回值
創建HTTP服務器
1 var http = require('http'); 2 http.createServer(function(req,res){ 3 res.writeHead(200,{'Content-Type':'text/html'}); 4 res.write('<h1>nodejs</h1>'); 5 res.end('<p>視頻PCAT</p>'); 6 }).listen(2000);
保存爲demo2.js並用cmd來運行
在瀏覽器中輸入:localhost:2000
回調函數
1.異步式讀取文件
var fs = require('fs'); fs.readFile('file.txt','utf-8',function(err,data){ if(err){ console.log(err); }else{ console.log(data) } }); console.log('end.'); 結果: end. Contents of the file.
在nodejs目錄裏編寫一個file.js
1 var fs = require('fs'); 2 fs.readFile('file.txt','utf-8',function(err,data){ 3 if(err){ 4 console.log(err); 5 }else{ 6 console.log(data) 7 } 8 }); 9 console.log('end.');
在nodejs目錄裏建立一個file.txt文件並寫入hi,i'm a file.txt
打開cmd 執行file.js
同步式讀取文件
var fs = require('fs'); var data=fs.readFileSync('file.txt','utf-8'); console.log(data); console.log('end.');
顯示以下
事件
1.普通事件的對象 (在nodejs目錄裏建立一個event.js)
//聲明事件對象 var EventEmitter = require('events').EventEmitter; var event = new EventEmitter(); //註冊事件 event.on('some_event',function(){ console.log('這是一個自定義的事件'); }) //在1s時間以後觸發事件 setInterval(function(){ event.emit('some_event'); },1000);
顯示結果以下:
node.js的事件循環機制
node.js程序是由事件循環開始,到事件循環結束,全部的邏輯都是事件的回調函數。
如何使用自定義事件呢
事件的回調函數在執行的過程當中,可能會發出IO請求或直接發射(emit)事件,這I型完畢後再返回事件循環。
node.js中的模塊和包的應用:
1.在nodejs安裝目錄中建立一個模塊 model.js
var name; exports.setName=function(theName){ name = theName; } exports.sayHello=function(){ console.log('hello'+name); }
2.在nodejs安裝目錄中建立一個模塊 getModel.js
var myModel = require('./model'); myModel.setName('hehe'); myModel.sayHello();
node.js中require不能重複加載模塊 只能包含一次
咱們把一個對象封裝到模塊中引入模塊 來實現屢次調用
例:在node的安裝目錄中建立一個Sing.js
function hello(){ var name; this.setName = function(theName){ name = theName; } this.sayHello = function(){ console.log('hello'+name); } } module.exports=hello;
在node的安裝目錄中建立一個getSing.js
var hello = require('./Sing'); var he = new hello(); he.setName('hhehe'); he.sayHello(); var he1 = new hello(); he1.setName('aaaa'); he1.sayHello();
包的建立
建立一個package包
1. package.json必須在包的頂層目錄下
package.json裏面代碼
{ "main" : "./lib/index.js" }
2.建立bin文件夾 裏面放二進制文件
3.建立doc文件夾 裏面放文檔
4.建立test文件夾 裏面放測試的
5.建立lib文件夾 放一個index.js
index.js裏面代碼:
exports.sayHello = function(){ console.log('this is a easy package'); }
具體package文件夾下的全部文件
在node安裝目錄裏建立一個getPackage.js
getPackage.js裏面的代碼:
var pac = require('./package'); pac.sayHello();
在cmd下測試以下:
node.js在調用某個包的時候。會檢查包中的package.json文件中的main字段,將其做爲包的 接口模塊,若是package.json或main字段不存在,會嘗試尋找index.js或index.code做爲包的接口。
package.json的規範屬性
如何用包管理器
1.獲取一個包
npm [install/i] [package_name]
例如:安裝express包
npm i express
卸載包
npm uninstall 報名 【-g】
查看當前報名
npm list
幫助連接:http://www.cnblogs.com/bluefrog/archive/2012/08/14/2639085.html
2.本地模式和全局模式
npm在默認狀況下會從http://npmjs.org搜索或下載包 將包安裝到npm_modules
a.默認是npm install包名 做爲本地模式
b.全局模式
npm install -g 包名
用cmd建立包裏裏面的package.json
安裝包
查看
測試