1. 程式人生 > >node入門筆記

node入門筆記

一、Node簡介

node是一個基於v8引擎的JavaScript執行環境。

二、全域性物件

setTimeout setInterval clearTimeout clearInterval console //當前目錄下的檔案 console.log(__dirname); //當前檔名 console.log(__filename); 三、模組 app.js
//模組
var obj = require('./count.js');
console.log(obj.arr);
console.log(obj.adder(
3,2)); console.log('there is ' + obj.arr.length + ' fruits in the packet');

count.js

var arr = ['apple', 'banana', 'orange'];

var adder = function(a,b) {
    return `this result is ${a+b}`;
}

/* module.exports.arr = arr;
module.exports.adder = adder; */

//等價於,這裡exports出了一個物件
module.exports = {
    arr: arr,
    adder: adder
}

四、事件

//事件核心庫
var events = require('events');
//新增事件
var myEmitter = new events.EventEmitter();
//給事件繫結函式
myEmitter.on('someEvent', function(message) {
    console.log(message);
})
//觸發事件
myEmitter.emit('someEvent', 'the event was emmited');
//匯入一個工具庫
var util = require('util');

var
Person = function(name) { this.name = name } //繼承所有Person的事件 util.inherits(Person, events.EventEmitter); var xiaoming = new Person('xiaoming'); var lili = new Person('lili'); var lucy = new Person('lucy'); var Person = [xiaoming, lili, lucy]; //繫結事件 Person.forEach(person => { person.on('speak', message => { console.log(person.name + ' said ' + message); }) }); //觸發事件 xiaoming.emit('speak','hi'); lili.emit('speak','hello'); lucy.emit('speak','nihao');

五、讀寫檔案(同步、非同步)

var fs = require('fs');
//同步讀取檔案
var readMe = fs.readFileSync('./test1/readMe.txt','utf8');
//同步寫檔案
fs.writeFileSync('writeMe.txt', readMe);
//非同步讀取檔案
fs.readFile('./test1/readMe.txt','utf8', function(err,data){
    console.log(data);
});
//非同步寫檔案
fs.writeFile('writeMe2.txt', readMe,function(err,data){
    console.log('data is copyed');
});

六、建立和刪除檔案

//建立檔案
fs.mkdir('stuff',function(){
    fs.readFile('readMe.txt', 'utf8',function(err,data){
        fs.writeFile('./stuff/writeMe.txt',data,function(){
            console.log('copy successfully');
        })
    })
});

//刪除檔案
fs.unlink('readMe.txt',function(){
    console.log('this file is deleted');
});

七、流和管道

ls => 檢視當前目錄下的檔案

ls | grep xx => 檢視當前目錄下是否含有xx檔案

— 待續 —