亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

初識Node.js

2019-11-20 12:53:15
字體:
來源:轉載
供稿:網友

先來簡單介紹nodeJS

  我們知道JavaScript是運行在瀏覽器中的,瀏覽器為它提供了一個上下文(context),從而讓JavaScript得以解析執行。

nodeJS其實可以這么理解,它是另外一種上下文,它允許在后端(脫離瀏覽器環境)解析執行JavaScript代碼。

因為它使用了Google的V8虛擬機(Google的Chrome瀏覽器使用的上下文環境),所以代碼可以同理德被執行。

nodeJS除了可以在瀏覽器端顯示結果之外,還可以直接在控制臺輸出。

nodeJS的特點

  nodeJS主要有非阻塞、基于事件驅動、單進程這幾個特點。NodeJS的作者說,他創造NodeJS的目的是為了實現高性能Web服務器,他首先看重的是事件機制和異步IO模型的優越性,而不是JS它更適用于輕量、可伸縮,適于實時數據交互應用。nodeJS內置了很多對象,比如http,fs等,我們可以用它搭建我們的HTTP服務器,在服務器上進行開發。

安裝

  對于我自己來說,很少進linux去干活,所以目前只有Windows端的安裝方式。Linux的安裝方式自己網上搜一搜吧..我貼一下別人的

先安裝依賴包 sudo apt-get install g++ curl libssl-dev apache2-utils   sudo apt-get install git-corethengit clone git://github.com/joyent/node.git    cd node  ./configure  make    sudo make install

聽說要注意Python版本的問題,建議2.6+的版本,低版本會出現Node安裝錯誤,

查詢Python版本可在終端中輸入:pyhton -v

Windows下

安裝很簡單,上官網,把最新版本的msi文件下載下來,直接安裝~可以修改路徑。

一路下去無阻礙

  安裝成功之后最新版本的默認已經幫你放進系統路徑里邊去了,不必管了。

之后可以到開始菜單里邊找到nodeJS打開其命令行進入,默認是進入C盤的,一般還是切換到安裝路徑所在盤,比如我的是E盤

看nodeJS是否安裝成功,查看其版本號 node -v

  然后簡單地測試一下,先輸入node命令,然后直接控制臺輸入console.log("hello");

因為console.log方法實際上是有返回值的,這里沒有給他返回,所以第二個就是undefined

  再來測試一下,這次我們要看見 Hello World !

在安裝路徑下(比如我是E:/Program Files/nodejs)新建一個main.js 文件,輸入

var http = require('http');  http.createServer(function (req, res) {   res.writeHead(200, {'Content-Type': 'text/plain'});    res.end('Hello World/n');  }).listen(3000, "127.0.0.1");  console.log('Server running at http://127.0.0.1:3000/');

  然后在里邊輸入 node main.js 執行(一般node里邊退出就是按一次或兩次 Ctrl+C ) ,這時服務器就已經搭建好了~
瀏覽器中輸入其中的地址:http://localhost:3000

我們的Hello World 出來了~

然后先來解釋一下這小段代碼。

  var http = require('http');上面說到了,http是nodeJS里邊內置的對象模塊,我們使用require這種方式把它引進來(對象模塊一般就是這么引入的,我們也可以自己建立自己的模塊,然后將它們引入,之后再提到)。

然后http現在這個對象模塊有一個方法是,http.createServer(),這個方法創建一個服務之后再監聽一個地址:http.createServer().listen(port,ip)

從而搭建了一個服務器。

  createServer()里邊有一個匿名函數,主要就是用來處理相關信息了。req是請求request,res是回復response。req一般用于請求階段的解析處理等,比如常見的get中的地址欄url字符的處理。res一般用于收到請求后相應的操作,比如寫響應頭響應體渲染頁面等等。

在這里,res.writeHead(200, {'Content-Type': 'text/plain'});就相當于寫了個響應頭,res.end('Hello World/n');相當于寫了個響應體。

  nodeJS提供了很多內置對象方法,比如http,fs,EventEmitter,url等等

這些東西的使用建議參考官方文檔

或者taobao建立的平臺CNodejs,去里邊逛逛吧

還有這個7天學會nodeJS

  基本的HTTP服務器搭建就是這樣了,下面介紹node強大的工具npm(node packages manager,包管理工具)。

它主要用于管理我們的包,下載安裝包或者卸載包等等。

舊版本的node需要自個去下載安裝,不過新版本的已經集成了。所以直接在這里輸入npm -v 查看它的版本吧~

npm安裝方式一般說來有兩種,全局或者本地

好那我們就先來體驗下,裝個express框架吧。

(express.js是nodejs的一個MVC開發框架,并且支持jade,ejs等多種模板)

我們可以使用兩種方式安裝:

全局安裝:npm install --g express .(我發現--g或者-g皆可)這種方式會把包安裝到全局路徑里邊,一般是C盤的npm/node_modules/下邊

哇哦....

不要在意那些錯誤..

接下來用我想express -V(大寫的)查看它的版本吧

有些朋友可能會遇到錯誤,這里貼個某網友的的~

解決方式如其所說:新版本將命令工具分家了,所以先另外再安裝它npm install -g express-generator

我說過了,不要在意上面那些細節..O_O

好了,現在我們來試試express ?

還是那個main.js 我們把它改成這樣:

var express = require("express");//var app = express.createServer(); // 在新版本已經不兼容了,所以直接用下面那個var app = express(); // 或者直接 var app= require("express")();var port = 3000;var ip = "127.0.0.1";app.listen(port,ip);// ip 這個參數可不寫,默認本地app.get('/',function(req,res){   res.send("Hello World/n");});console.log("start express server/n");

如上所示,新版本可能會報錯沒那個方法

express封裝了http,所以可以直接使用它定義的方法了

然后瀏覽器輸入http://localhost:3000/ 又是

然后再來簡單介紹上面的代碼。其余都不必說了,說一下app.get() 其實這就是一個路由處理。

好那我們來試試路由的處理~

var express = require("express");//var app = express.createServer(); // 在新版本已經不兼容了,所以直接用下面那個var app = express(); // 或者直接 var app= require("express")();var port = 3000;var ip = "127.0.0.1";app.listen(port,ip);// ip 這個參數可不寫,默認本地app.get('/',function(req,res){   res.send("Hello World/n");});app.get('/one',function(req,res){  // 或者“/one/  res.send("one/n");});app.get('/user',function(req,res){  //或者 "/user/"  res.send("user/n");});app.get('/user/:id',function(req,res){  //或者 "/user/"  res.send("user: "+req.params.id);});console.log("start express server/n");

如上所示,get的第一個參數就是路徑地址,第二個參數就是回調函數。

你使用不同的地址路徑,就可以進行不同的操作了。

比如瀏覽器地址的不同可路由:

上頭那個user/11中的11就被當做user的參數id值。我們可以通過req.params這個全局方法來獲取相應的參數值 req.params.id

  對于express,其實有一種更普遍的方法,那就是直接用它來創建一個項目:

比如,我要創建項目express_test 就輸入

express -e express_test

好了,項目創建成功,看一下它的結構吧~

項目創建成功之后,生成四個文件夾,主文件app.js與配置信息文件packetage.json

bin是項目的啟動文件,配置以什么方式啟動項目,默認 npm start

public是項目的靜態文件,放置js css img等文件

routes是項目的路由信息文件,控制地址路由

views是視圖文件,放置模板文件ejs或jade等(其實就相當于html形式文件啦~)

express這樣的MVC框架模式,是一個Web項目的基本構成。

更細的部分先不考慮,我們先來簡單地啟動吧~

看到沒有,第一步出錯了,因為它不知道是什么項目,所以要先進入你想要啟動的項目。cd express_test

然后又出錯了是怎么回事?

看到了吧,它找不到所需模塊,所以一般我們創建新項目的時候也要先給他安裝相應的模塊。

我們直接使用npm install 就行了,它會自動檢測package.json文件下載安裝相應的模塊

好吧,那就啟動吧~

ok,啟動成功,瀏覽器輸入地址查看一下~

默認端口是3000,可以到bin里邊的www文件查看,或者自己修改吧~

哇哦~成功了!簡單的express項目就是這樣子了..

express模塊就先簡單地介紹到這來。更多的express后面會繼續講一講~

最后隨手談一下上面提到的require相關的知識

編寫稍大一點的程序時一般都會將代碼模塊化。在NodeJS中,一般將代碼合理拆分到不同的JS文件中,每一個文件就是一個模塊,而文件路徑就是模塊名。

在編寫每個模塊時,都有require、exports、module三個預先定義好的變量可供使用。

  require函數用于在當前模塊中加載和使用別的模塊,傳入一個模塊名,返回一個模塊導出對象。

模塊名可使用相對路徑(以./開頭),或者是絕對路徑(以/或C:之類的盤符開頭),模塊名中的.js擴展名可以省略。

舉個例子:

var express = require("express");var func1 = require("./func1");// 是與當前main.js同路徑下的func1.js模塊var func2 = require("../nodejs/func2");// func2.js則位于與main.js父文件同路徑下的

  exports對象是當前模塊的導出對象,用于導出模塊公有方法和屬性。

別的模塊通過require函數使用當前模塊時得到的就是當前模塊的exports對象。

比如上面提到的func1.js

我們可以這樣寫代碼然后導出來:

exports.func1 = function(){   console.log("This is func1");};/*或者這樣function func1(){   console.log("This is func1");}exports.func1 = func1;*/

  module對象可以訪問到當前模塊的一些相關信息,但最多的用途是替換當前模塊的導出對象。

例如模塊導出對象默認是一個普通對象,如果想改成一個函數的話,可以使用以下方式。

module.exports = function () {    console.log('Hello World!'); };


這樣一來,模塊默認導出對象被替換為一個函數。我們在main.js里邊就可以直接 var app = require("./func1")(); 操作了

還可以導出一個對象的形式:

//在func1.js里邊這樣module.exports = function(name, age) { this.name = name; this.age = age; this.about = function() { console.log(this.name +' is '+ this.age +' years old'); }; }; //然后在main.js里邊這樣var Func1 = require('./func1.js'); var r = new Func1('xiaoming', 12); r.about(); // xiaoming is 12 years old

-----------好了 以上就是nodeJS的起步,有沒有發現,好神奇..--------------

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
95av在线视频| 91精品久久久久久综合乱菊| 久久久久久久av| 大胆欧美人体视频| 日韩av免费看| 欧美日韩亚洲视频| 亚洲精美色品网站| 亚洲欧美综合另类中字| 国产在线98福利播放视频| 国产精品永久在线| 91色视频在线导航| 日韩高清不卡av| 国产综合久久久久| 日韩网站免费观看| 国产精品无码专区在线观看| 亚洲精品一区二三区不卡| 2018中文字幕一区二区三区| 亚洲视频欧美视频| 亚洲国产精品悠悠久久琪琪| 黑人极品videos精品欧美裸| 国产精品久久一区| 日韩精品在线视频美女| 性欧美视频videos6一9| 亚洲综合中文字幕在线观看| 日韩免费av在线| 亚洲日本欧美中文幕| 欧美精品videossex88| 亚洲国产私拍精品国模在线观看| 国产精品日日摸夜夜添夜夜av| 国内精品视频在线| 色综合男人天堂| 日韩在线观看高清| 久久久久久久亚洲精品| 青青草成人在线| 国产精品爽黄69天堂a| 欧美成年人视频网站欧美| 久久99视频免费| 中文字幕亚洲一区在线观看| 久久精品99国产精品酒店日本| 性视频1819p久久| 九九热这里只有精品免费看| 亚洲成av人影院在线观看| 欧美肥臀大乳一区二区免费视频| 国产欧美精品在线| 狠狠躁夜夜躁人人爽超碰91| 欧美一区二区三区图| 欧美视频在线观看免费网址| 欧美国产一区二区三区| 成人在线一区二区| 成人性生交大片免费看视频直播| 国产不卡一区二区在线播放| 亚洲香蕉av在线一区二区三区| 欧美激情视频在线观看| 国产91在线播放九色快色| 成人伊人精品色xxxx视频| 亚洲精品少妇网址| 这里只有精品在线播放| 最近中文字幕2019免费| 亚洲欧洲免费视频| 精品久久久久久| 日韩电影免费观看在线观看| 日韩高清中文字幕| 国产视频亚洲视频| 日韩av免费在线看| 社区色欧美激情 | 在线视频一区二区| 欧美激情女人20p| 亚洲白虎美女被爆操| 亚洲一区二区三区四区在线播放| 久久精品成人欧美大片古装| 午夜精品久久久久久久99黑人| 日韩av影院在线观看| 精品露脸国产偷人在视频| 久久99亚洲精品| 欧美丝袜一区二区| 欧美日韩高清在线观看| 精品欧美国产一区二区三区| 亚洲视频综合网| 日韩大片免费观看视频播放| 一区二区av在线| 亚洲成人中文字幕| 国产精品久久久久久久久久久久久久| 色老头一区二区三区| 午夜精品一区二区三区在线| 久久亚洲综合国产精品99麻豆精品福利| 清纯唯美亚洲综合| 亚洲自拍中文字幕| 国产精品久久久av久久久| 亚洲欧美综合精品久久成人| 国产精品久久久av久久久| 亚洲第一色中文字幕| 国产精品视频中文字幕91| 亚洲福利影片在线| 欧美高清不卡在线| 亚洲第一页中文字幕| 欧美激情久久久久久| 最近2019中文字幕mv免费看| 亚洲精品视频在线观看视频| 精品美女国产在线| 国产一区二区在线免费视频| 日韩在线播放视频| 国产成人小视频在线观看| 国产精品pans私拍| 日韩免费中文字幕| www.日韩av.com| 黑人巨大精品欧美一区二区三区| 欧美精品videos另类日本| 久久久精品久久久久| 在线观看国产成人av片| 国产丝袜一区视频在线观看| 国产精品一区二区三区免费视频| 久久视频在线播放| 81精品国产乱码久久久久久| 亚洲天天在线日亚洲洲精| 91av网站在线播放| 成人妇女淫片aaaa视频| 成人性生交大片免费看小说| 大胆欧美人体视频| 成人有码在线视频| 国产午夜精品麻豆| 久久精品亚洲一区| 日本久久久久久久久| 久久精品91久久香蕉加勒比| 亚洲高清一二三区| 91在线视频免费| 成人网在线观看| 日韩在线观看免费网站| 911国产网站尤物在线观看| 亚洲日本中文字幕| 日韩大胆人体377p| 国产精品久久久久久五月尺| 欧洲午夜精品久久久| 午夜精品一区二区三区视频免费看| 国产成人一区二区在线| 国产精品91久久| 久久久久中文字幕2018| 亚洲人午夜精品免费| 国产97在线观看| 成人网在线观看| 国产精品对白刺激| 69影院欧美专区视频| 国产在线精品自拍| 青青青国产精品一区二区| 欧美性感美女h网站在线观看免费| 欧美日韩福利在线观看| 国产精品吹潮在线观看| 亚洲国产成人精品一区二区| 国产综合久久久久| 亚洲高清一二三区| 2023亚洲男人天堂| 国产91热爆ts人妖在线| 永久555www成人免费| 国产精品永久免费| 91干在线观看| 欧美精品做受xxx性少妇| www.日韩免费| 欧美壮男野外gaytube| 久久久99久久精品女同性| 成人a在线视频| 深夜精品寂寞黄网站在线观看| 亚洲精品国产精品久久清纯直播| 亚洲人成网7777777国产| 亚洲自拍高清视频网站| 在线播放国产一区中文字幕剧情欧美|