node.js初探-超越昨天的自己系列(3)
超越昨天的自己系列(3)
其實,學習這事總是被動的,有一天,當我們明白需要努力學習的時候,才發現,知識的世界是那么的浩淼,見不到岸,甚至見不到日出,迷霧重重,困惑的我們很容易甩一甩手不想繼續了。所以說:進步從來都不是件容易的事情。
------------------------------------------
node.js 接觸接觸,學習點新東西,對未來的自己總是好的。
?從這里開始:http://www.nodejs.org/
?
1,require?問題 如下代碼: http = require("http"); http作為module(模塊)導入進來,這樣就可以使用它的方法了。類似java里的import。 javascript本身不支持module,如此就出現了所謂的CommonJSCommonJS(http://www.commonjs.org)規范的出現,其目標是為了構建JavaScript在包括Web服務器,桌面,命令行工具,及瀏覽器方面的生態系統。
CommonJS制定了解決這些問題的一些規范,而Node.js就是這些規范的一種實現。Node.js自身實現了require方法作為其引入 模塊的方法,同時NPM也基于CommonJS定義的包規范,實現了依賴管理和模塊自動安裝等功能。
基本的寫法如下:
1.modulea.js
?
module.exports.add = function add(n,m){var count = n + m;console.log(n + "+" + m + "=" + count);return count; };?
2.moduleb.js
a = require("./modulea"); a.add(1,2);?
比較具體的例子可以參考這文章:
http://openmymind.net/2012/2/3/Node-Require-and-Exports/
?
?2,關于回調函數
在node.js的編碼中大量使用了函數回調,先熟悉一下:
實例一
結果為3;
?
實例二 匿名函數
我們用匿名函數替代了 one,two兩個函數。
通過上面兩個實例,回調函數的定義為:傳遞一個函數A到另一個函數B中,并且這個函數B執行函數A。我們就說函數A叫做回調函數。如果沒有名稱,就叫做匿名回調函數
?
?至于回調和異步的關系,可以參考這篇文章:
http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
?
3,hello world
用node.js構建一個服務器,簡單到發指,入門文章中都有提到。
var http = require("http");http.createServer(function(request, response) {response.writeHead(200, {"Content-Type": "text/plain"});response.write("Hello World");response.end(); }).listen(8888);監聽8888端口,任何請求都會打印Hello World。
?
4,關于實現一個調用baidu地圖的api
通過坐標,請求具體地址,就是發送個http請求而已,連解析返回值都沒做,呵呵
http = require("http"); var key="37492c0ee6f924cb5e934fa08c6b1676"; var location="39.983424,%20116.322987"; var output="json"; var path = "/geocoder?location=" + location + "&output=" + output + "&key=" + key var resultJson="";options={host:"api.map.baidu.com",method:"get",path:path }; //http://api.map.baidu.com/geocoder?output=json&location=39.983424,%20116.322987&key=37492c0ee6f924cb5e934fa08c6b1676 //http://api.map.baidu.com/geocoder?location=緯度,經度&output=輸出格式類型&key=用戶密鑰 req = http.request(options, function(res){//console.log('STATUS: ' + res.statusCode);//console.log('HEADERS: ' + JSON.stringify(res.headers));// 取body內容res.on('data', function (chunk) {console.log('BODY: ' + chunk);resultJson = resultJson + chunk;});console.log('resultJson: ' + resultJson); }); req.on('error', function(e) {console.log('problem with request: ' + e.message); });req.end(); //返回結果: /*** resultJson:BODY: {"status":"OK","result":{"location":{"lng":116.322987,"lat":39.983424},"formatted_address":"北京市海淀區中關村大街27號1101-08室","business":"人民大學,中關村,蘇州街","addressComponent":{"city":"北京市","district":"海淀區","province":"北京市","street":"中關村大街","street_number":"27號1101-08室"},"cityCode":131} }**/?
?
--------------------------------------------------
讓我們繼續前行!
總結
以上是生活随笔為你收集整理的node.js初探-超越昨天的自己系列(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国计算机等级考试——二级公共基础知识辅
- 下一篇: Java XML解析工具 JDOM介绍及