'use strict';
var http = require('http');
var port = process.env.PORT || 1337;
/**
* 回调函数的使用
*/
var fs = require("fs");
fs.readFile('./input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
/************end**************/
/**
* 事件驱动程序
*/
var events = require('events');
var eventEmitter = new events.EventEmitter();
var connectHandler = function conneted() {
console.log("connect success.");
eventEmitter.emit('data_received');
}
eventEmitter.on('connection', connectHandler);
eventEmitter.on('data_received', function () {
console.log('received data1 success.');
});
eventEmitter.on('data_received', function () {
console.log('received data2 success.');
});
setTimeout(function () {
eventEmitter.emit('connection');
}, 1000);
console.log('program run over.');
/************end**************/
/************Buffer对象************/
var buf = Buffer.alloc(26);
for (var i = 0; i < 26; i++) {
buf[i] = i + 97;
}
console.log(buf.toString('ascii'));
console.log(buf.toString('ascii', 0, 5));
console.log(buf.toString('utf8', 0, 5));
console.log(buf.toString(undefined, 0, 5));
var buffer2json = Buffer.from('aabbc!');
var _json = buffer2json.toJSON(buffer2json);
console.log("The Buffer2Json is " + _json);
var buffer1 = Buffer.from('Me');
var buffer2 = Buffer.from(' QinShiHuang');
var buffer3 = Buffer.from(' DaQian');
var buffer4 = Buffer.concat([buffer1, buffer2, buffer3]);
console.log("The concat result is " + buffer4.toString());
var cBuffer1 = Buffer.from('ABC');
var cBuffer2 = Buffer.from('ABCD');
console.log("The compare result is ")
var compareResult = cBuffer1.compare(cBuffer2);
if (compareResult < 0) {
console.log(cBuffer1 + ' at before of ' + cBuffer2);
} else if (compareResult == 0) {
console.log(cBuffer1 + ' at after of ' + cBuffer2);
} else {
console.log(cBuffer1 + ' is equal of ' + cBuffer2);
}
var copyBuffer1 = Buffer.from('I Hate You!');
var copyBuffer2 = Buffer.from('Love');
copyBuffer2.copy(copyBuffer1, 2);
console.log("The copy content is " + copyBuffer1.toString());
var sliceBuffer1 = Buffer.from('you are');
var sliceBuffer2 = sliceBuffer1.slice(0, 3);
console.log("sliceBuffer2 content : " + sliceBuffer2.toString());
/************end**************/
/*******************Stream流start**********************/
var streamData = '';
var readerStream = fs.createReadStream('./input.txt');
readerStream.setEncoding('UTF8');
readerStream.on('data', function (chunk) {
streamData += chunk;
});
readerStream.on('end', function () {
console.log(streamData);
});
readerStream.on('error', function (err) {
console.log(err.stack);
});
console.log('stream run over!');
var writeData = 'this is a very good thing,dont worry';
var writeStream = fs.createWriteStream('./output.txt');
writeStream.write(writeData, 'UTF8');
writeStream.end();
writeStream.on('finish', function () {
console.log('Write success.');
});
writeStream.on('error', function (err) {
console.log(err.stack);
});
var rStream = fs.createReadStream('./input.txt');
var wStream = fs.createWriteStream('./output1.txt');
rStream.pipe(wStream);
console.log("Read and Write Over!");
var zlib = require('zlib');
fs.createReadStream('./input.txt')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('./input.txt.gz'));
console.log('zip complete!');
/*******************Stream流end**********************/
/*******************模块系统创建对象start**********************/
var Hello = require('./hello');
var hello = new Hello();
hello.setName('Wang Da Niang');
hello.sayHello();
/*******************模块系统创建对象end**********************/
/*******************Node.js函数start**********************/
function say(word) {
console.log(word);
}
function execute(someFunction, value) {
someFunction(value);
}
execute(say, 'WoZhenDeAiNi!');
execute(function (word) { console.log('NiMing:' + word); }, 'BuXiangShuoHua')
/*******************Node.js函数end**********************/
/*******************Node.js全局对象start **********************/
console.log(__filename);
console.log(__dirname);
process.stdout.write("Hello World!\n")
process.argv.forEach(function (val, index, array) {
console.log(index + ':' + val);
});
console.log(process.exePath);
console.log(process.platform);
console.log('current direction is :' + process.cwd());
console.log('current version is :' + process.version);
console.log('current neicun is :'+process.memoryUsage());
/*******************Node.js全局对象end**********************/
/************util.inherits继承方法start**************/
var util = require('util');
function Base() {
this.name = 'GuoJia';
this.base = 1995;
this.sayHello = function () {
console.log('Hello' + this.name);
};
}
Base.prototype.showName = function () {
console.log(this.name);
}
function Sub() {
this.name = 'Ai';
}
util.inherits(Sub, Base);
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objBase.showName();
console.log(objSub);
/************util.inherits继承方法end**************/
/************util.inspect方法start**************/
function Person() {
this.name = 'LiXiuQi';
this.toString = function () {
return this.name;
};
}
var obj = new Person();
console.log(util.inspect(obj));
console.log(util.inspect(obj, true));
/************util.inspect方法end**************/
/*******************启动服务start**********************/
var url = require("url");
var route = require('./route.js');
function start(route) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(pathname);
response.writeHead(200, { 'Content-Type': 'text/plain' });
response.end('Hello World\n');
}
http.createServer(onRequest).listen(port);
}
start(route.route);
/*******************启动服务end**********************/
console.info("hi this is the first application!");