首頁 > web前端 > js教程 > 主體

Windows系統下Node.js的簡單入門教學_node.js

WBOY
發布: 2016-05-16 15:53:27
原創
1621 人瀏覽過

隨著最近Paypal和Netflix宣告遷移到Node.js, 伺服器端Javascript平台已經證明其自身在企業領域的價值. 這對於Node來說是一小步,對於Javascript而言卻是一大跨越啊! 來自.NET, Java, PHP, Ruby on Rails和更多技術領域的程式設計師, 所有遊走於伺服器端的編碼者都會聚集到這個平台上. 作為像Yahoo, Walmart, 和Oracle 這樣的大玩家入局, , Node 正在甩掉其一直就存在的不成熟和不穩定的壞名聲. 在這篇文章中,我會向你展示在Window環境下安裝Node.js到底有多容易.
安裝Node.js

讓Node.js安裝在Windows上就是小事一樁. 到Node.js 網站下載並運行".msi"檔. 它將會把Node.js 和NPM (Node包管理模組)安裝上. NPM 相當於用於.NET應用的NuGet 套件管理器.

運行Node.js

在Windows上運行Node.js同樣很容易. 打開PowerShell 並輸入"node -v" 確保Node在你的環境變量,並查看你正在運行的Node.js的版本. 同樣的輸入"npm -v " 來查看你安裝的Node包管理工具的版本. 你弄好了沒? Ok, 讓我們來開始享受樂趣吧!!

打開記事本程序,我們將構建我們的第一個Node.js應用. 把下面的代碼複製到記事本程序中,使用任何文件名都可以,比如"example.js", 並把它保存到你希望的資料夾:
 

var http = require('http');
http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/plain'});
 res.end('Hello Node');
}).listen(1337, '127.0.0.1');
登入後複製

現在回到 PowerShell. 將路徑變更到你的"example.js"檔案存放的地方,並執行Node!
 

cd C:\Websites\NodeTest
node example.js
登入後複製

開啟你的網頁瀏覽器,導航輸入 http://127.0.0.1:1337. 起作用了什麼? 恭喜你運行了你的第一個Node.js應用!

提供網站服務

你會擔憂我會只留下一個"Hello World" 範例就收工了? 如果我們知道如何去運行一個HTML文件,那將會更加的美好. 添加一個"index.html" 文件,裡面可以是任何HTML內容. 將會像這樣:
 

<html>
 <head>
  <title>Sample Node.js Website</title>
 </head>
 <body>
  <p>This is the home page for you Node.js website.</p>
 </body>
</html>
登入後複製

是時候運行應用程式了。建立一個可以叫任何名字的新文件,例如 "index.js", 並把如下的js程式碼加到裡面:
 

var http = require('http');
var fs = require('fs');
 
http.createServer(function(req, res){
  fs.readFile('index.html',function (err, data){
    res.writeHead(200, {
       'Content-Type': 'text/html',
       'Content-Length': data.length
      });
    res.write(data);
    res.end();
  });
}).listen(1337, '127.0.0.1');
登入後複製

事情在這裡開始變得更加有趣了. 注意開頭的地方多了一行"require" . 你正在往你的應用中帶入需要的依賴程序. 這像是C#中用來調用依賴程序的" using" 命名空間指令.

透過在PowerShell中輸入: node index.js 來運行"index.js"(不要忘了敲擊Ctrl-C來退出上一個Node應用的運行,或者在這次使用一個新的端口號).在你的瀏覽器中,導航到http://127.0.0.1:1337 ,你就應該會看到你的HTML檔案了. 你將可能在這點成就上感到有些激動, 但如果你想我,就會對它產生一些複雜的感覺. 這還只是低級別的編程,如果我不得不去考慮讀取/流媒體文件,還有有關每次應該發送什麼狀態這些問題的時候,世界很快就會變得煩惱重重. 向ExpressJS道好吧!

使用Node包管理器

Node.js有一個再次讓我們感覺世界美好的搭檔. ExpressJS 屏蔽掉了需要在Node.js進行的老調重彈,讓你可以直接進入web開發. 它是一個可以讓你構建單頁,多頁還有混合型網頁應用程式的網頁框架. 沒有它你在Node.js 領域是不會有盼頭滴!

首先使用NPM 來安裝它. 為此,再一次打開PowerShell並切換到你的應用程式的路徑. 現在輸入: npm install express. 它將創建一個叫做"node_modules" 來安裝ExpressJS. 從這個角度上看,你的Node模組將會放到那裡,有點像在.NET應用中的"bin"目錄, 從這裡你可以調用或者"require"你的依賴程序.
 
ExpressJS入門

現在任意建立一個新檔案, 例如 "server.js", 並把下面的程式碼貼進去:
 

var express = require('express');
 
//CREATE APP
var app = express();
 
//LOCATION OF STATIC CONTENT IN YOUR FILESYSTEM
app.use(express.static(__dirname));
 
//PORT TO LISTEN TO
app.listen(1337);
登入後複製

这是在调用ExpressJS的依赖, 然后从它那里创建一个应用. 从此你可就牛逼大发了! 在这里,我们只是简单的提供静态文件服务. "__dirname" 是来自ExpressJS的一个特殊的变量,意思是根文件系统位置. 最后你告诉应用去侦听端口 1337. 现在你就拥有了一个提供静态文件服务的 Node.js 站点了! 另外在新增一些HTML文件,一些放在子目录中,然后到http://127.0.0.1:1337 测试看看吧.

关于 IIS

在这些示例中, 我一直都是在端口1337运行应用,而不是端口80.原因是IIS已经侦听了80端口. 有许多的方法可以使IIS 和 Node.js 和谐共存:

  • IISNode: 这是一个在你的IIS站点让Node.js像一个应用池那样运行的很聪明的点子, 同在IIS中与运行PHP很像. 事实上,Azure就是用这个在其平台上运行Node.js的.
  • WinServ: 它让 Node.js 像一个Windows服务那样运行. 它实际上是对流行了 NSSM (Non-Sucking Service Manager)的一个对Node.js友好的封装. 一旦作为一个服务运行,你就可以使用IIS的应用请求路由(ARR) 来代理向你的Node.js应用端口发起的请求.

关于 MS SQL

有许多为Node.js准备的 MS SQL 驱动程序, 有些甚至是跨平台的. 有一个只能在Windows环境中运行的,是由Windows Azure发布: Microsoft Driver for Node.js for SQL Server. 而你可以像下面这样开始工作:

var sql = require('node-sqlserver');
var connStr = "Driver={SQL Server Native Client 11.0};Server=(local);Database=AdventureWorks2012;Trusted_Connection={Yes}";
var cmd = "SELECT TOP 10 FirstName, LastName FROM Person.Person";
 
sql.open(connStr, function (err, conn) {
  conn.queryRaw(cmd , function (err, results) {
    for (var i = 0; i < results.rows.length; i++) {
      console.log(
          "FirstName: " + results.rows[i][0]
       + " LastName: " + results.rows[i][1]);
    }
  });
});
登入後複製

总结

这些都只是皮毛! 与 ExpressJS携手, 你将能够创建带有路由、视图、布局、服务还有更多组件的完全成熟的MVC应用程序. 同样,除非你需要去集成一些现有的Microsoft应用程序或者MS SQL数据库, MongoDB 在你创建一个Node堆栈式是能帮助你从SQL中解放的好伙伴. 最后,你可以使用MEAN创建一个MEAN Javascript全栈应用, 包括有MongoDB, ExpressJS, AngularJS, 和Node.js. 现在企业已经向Node.js靠拢了, 对你而言同样是不是时候来辅助行动了呢?

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!