nodejs 初探 api试用
生活随笔
收集整理的這篇文章主要介紹了
nodejs 初探 api试用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
概述及安裝:
簡(jiǎn)單的說(shuō) Node.js 就是運(yùn)行在服務(wù)端的 JavaScript。
Node.js 是一個(gè)基于Chrome JavaScript 運(yùn)行時(shí)建立的一個(gè)平臺(tái)。
Node.js是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,基于Google的V8引擎,V8引擎執(zhí)行Javascript的速度非常快,性能非常好。
下載:https://nodejs.org/en/download/ 可以下載源碼或二進(jìn)制發(fā)行版本,linux新版本的發(fā)行版本已經(jīng)自帶了npm,不用單獨(dú)安裝了,自帶目錄為: 下載 tar.gz二進(jìn)制版本后,解壓并設(shè)置環(huán)境變量: export NODE_HOME=/usr/local/node/0.10.24 export PATH=$NODE_HOME/bin:$PATH 測(cè)試,輸出node的版本: node -v 輸出使用的npm的版本: npm -v 正常顯示出版本好,即表示安裝成功。 使用方式: 1.輸入 node 回車(chē),進(jìn)入交互模式,可以直接輸入代碼并運(yùn)行 2.輸入 node test.js ,可運(yùn)行該 js 中的代碼API:
一些常用的api測(cè)試如下:
console.log('========內(nèi)置全局對(duì)象:process'); console.log('當(dāng)前目錄: ' + process.cwd()); console.log('當(dāng)前版本: ' + process.version); //輸出內(nèi)存使用情況 console.log(process.memoryUsage()); process.on('exit', function(code) {// 以下代碼永遠(yuǎn)不會(huì)執(zhí)行setTimeout(function() {console.log("該代碼不會(huì)執(zhí)行");}, 0);console.log('退出碼為:', code); });console.log('------http處理web服務(wù),使用server.js和router.js兩個(gè)模塊------'); var server = require("./server"); var router = require("./router"); //server.start(router.route);console.log('-------fs處理文件-------'); var fs = require("fs"); var file = '/home/conquer/Desktop/ignite'; var data = fs.readFileSync(file); console.log(data.toString());fs.readFile(file, function (err, data) {if (err) {console.log(err.stack);return console.error(err);}console.log(data.toString()); }); console.log("文件讀取結(jié)束!");console.log('------events處理自定義事件監(jiān)聽(tīng)處理模型------'); var events = require('events'); var emitter = new events.EventEmitter(); emitter.on('someEvent', function(arg1, arg2) { console.log('listener1', arg1, arg2); }); emitter.on('someEvent', function(arg1, arg2) { console.log('listener2', arg1, arg2); }); emitter.once('connection', function (stream) {console.log('Ah, we have our first user!'); }); emitter.emit('someEvent', 'arg1 參數(shù)', 'arg2 參數(shù)'); // first emitter.emit('someEvent', 'arg1 參數(shù)', 'arg2 參數(shù)'); // second emitter.emit('connection', 'connection 參數(shù)', 'connection 參數(shù)'); //first emitter.emit('connection', 'connection 參數(shù)', 'connection 參數(shù)'); //second : no action because of [emitter.once] var callback = function() {console.log('aaaaaa'); } emitter.addListener('addEvent', function(stream) {console.log('stream:' + stream); }); emitter.addListener('addEvent', callback); emitter.on('addEvent', callback); console.log("listenerCount:" +events.listenerCount(emitter, 'addEvent')); //emitter.removeListener('addEvent', callback); //emitter.removeListener('addEvent', callback); emitter.removeAllListeners(); emitter.emit('addEvent'); // test error handler //emitter.emit('error'); console.log('------------Buffer(緩沖區(qū))處理二進(jìn)制數(shù)據(jù)----------'); buf = new Buffer(26); for (var i = 0 ; i < 26 ; i++) {buf[i] = i + 97; } console.log( buf.toString('ascii')); // 輸出: abcdefghijklmnopqrstuvwxyz console.log( buf.toString('ascii',0,5)); // 輸出: abcde console.log( buf.toString('utf8',0,5)); // 輸出: abcde console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 編碼, 并輸出: abcdefunction say(word) {console.log(word); } function execute(someFunction, value) {someFunction(value); } say("Hello"); execute(say, "Hello");console.log('------ 自帶 工具類(lèi) :util ------'); var util = require('util'); console.log('輸出內(nèi)存使用情況:'+util.inspect(process.memoryUsage())); console.log(util.isArray([]))// true console.log(util.isArray(new Array))// true console.log(util.isArray({}))console.log('-------dns模塊------'); var dns = require('dns');dns.lookup('www.github.com', function onLookup(err, address, family) {console.log('ip 地址:', address);dns.reverse(address, function (err, hostnames) {if (err) {console.log(err.stack);}console.log('反向解析 ' + address + ': ' + JSON.stringify(hostnames)); }); });console.log('-----net 模塊,發(fā)送網(wǎng)絡(luò)請(qǐng)求-----'); var net = require('net'); var client = net.connect({port: 80,host:'www.baidu.com'}, function() {console.log('連接到服務(wù)器!'); }); client.on('data', function(data) {console.log(data.toString());client.end(); }); client.on('end', function() { console.log('斷開(kāi)與服務(wù)器的連接'); });console.log('----path,用于處理路徑----'); var path = require("path"); // 格式化路徑 console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..')); // 連接路徑 console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..')); // 轉(zhuǎn)換為絕對(duì)路徑 console.log('resolve : ' + path.resolve('main.js')); // 路徑中文件的后綴名 console.log('ext name : ' + path.extname('main.js'));console.log('---- os,操作系統(tǒng)信息獲取接口'); var os = require("os");// CPU 的字節(jié)序 console.log('endianness : ' + os.endianness());// 操作系統(tǒng)名 console.log('type : ' + os.type());// 操作系統(tǒng)名 console.log('platform : ' + os.platform());// 系統(tǒng)內(nèi)存總量 console.log('total memory : ' + os.totalmem() + " bytes.");// 操作系統(tǒng)空閑內(nèi)存量 console.log('free memory : ' + os.freemem() + " bytes.");server.js
var http = require("http"); var url = require("url"); function start(route) {function onRequest(request, response) {var pathname = url.parse(request.url).pathname;console.log("url: " + pathname);route(pathname);response.writeHead(200, {"Content-Type": "text/plain"});response.write("Hello World");response.end();}http.createServer(onRequest).listen(8888);console.log('Server running at http://127.0.0.1:8888/'); } //全局設(shè)置,對(duì)其它模塊可見(jiàn) exports.start = start;router.js function route(pathname) {console.log("About to route a request for " + pathname); } //全局設(shè)置,對(duì)其它模塊可見(jiàn) exports.route = route;
總結(jié)
以上是生活随笔為你收集整理的nodejs 初探 api试用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 被曝欠薪又放长假,600亿科技巨头爆雷了
- 下一篇: latex 正负号