nodejs(1)

 

node.js 是一個讓javascript運行在服務端的開發平臺javascript

node.js的環境部署html

1.下載安裝包java

 https://nodejs.org/en/node

安裝後 打開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

安裝包

查看

測試

相關文章
相關標籤/搜索