최근 Paypal과 Netflix가 Node.js로의 마이그레이션을 발표하면서 서버측 Javascript 플랫폼은 기업 분야에서 그 가치를 입증했습니다. 이는 Node에게는 작은 단계이지만 ! NET, Java, PHP, Ruby on Rails 및 기타 기술 분야에서 모든 서버 측 코더가 이 플랫폼에 통합될 것입니다. Yahoo, Walmart 및 Oracle과 같은 대형 플레이어가 게임에 참여함에 따라 Node는 미성숙하고 불안정합니다. 이번 글에서는 Windows에 Node.js를 설치하는 것이 얼마나 쉬운지 보여드리겠습니다.
Node.js 설치
Windows에 Node.js를 설치하는 것은 매우 쉽습니다. Node.js 웹사이트로 이동하여 ".msi" 파일을 다운로드하고 실행하면 Node.js와 NPM(노드 패키지 관리 모듈)이 설치됩니다. .NET 애플리케이션용 NuGet 패키지 관리자와 동일합니다.
Node.js 실행
Windows에서 Node.js를 실행하는 것도 마찬가지로 쉽습니다. PowerShell을 열고 "node -v"를 입력하세요. Node가 환경 변수에 있는지 확인하고 실행 중인 Node.js 버전을 확인하세요. 설치한 Node 패키지 관리 도구의 버전을 확인해 보겠습니다. 이제 재미있게 시작해 보세요!!
메모장 프로그램을 열고 첫 번째 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');
여기서 상황이 더욱 흥미로워지기 시작합니다. 시작 부분에 필수 종속성을 가져오는 추가 라인이 있습니다. 이는 C#에서 종속성을 호출하는 데 사용되는 "require" 라인과 유사합니다. " 네임스페이스 지시어입니다.
PowerShell에서 node index.js를 입력하여 "index.js"를 실행합니다(마지막 Node 애플리케이션 실행을 종료하려면 Ctrl-C를 누르거나 이번에는 브라우저에서 새 포트 번호를 사용하는 것을 잊지 마세요). http://127.0.0.1:1337로 이동하면 HTML 파일이 표시됩니다. 아마도 이 업적에 대해 약간 흥분되겠지만, 제가 그리워지면 이에 대해 약간의 엇갈린 감정을 갖게 될 것입니다. 여전히 저수준 프로그래밍이고, 파일을 읽고 스트리밍할 때마다 어떤 상태를 보내야 할지 생각해야 한다면 세상이 빨리 바뀔 것입니다. ExpressJS를 만나보세요!
노드 패키지 관리자 사용
Node.js에는 세상을 다시 아름답게 만드는 파트너가 있습니다. ExpressJS는 Node.js에서 똑같은 낡은 수법을 반복할 필요를 차단하여 웹 개발에 직접 들어갈 수 있게 해주는 도구입니다. 페이지, 다중 페이지 및 혼합 유형 웹 애플리케이션을 위한 웹 프레임워크입니다. 이것이 없으면 Node.js 세계에 희망이 없습니다!
먼저 NPM을 사용하여 설치하려면 PowerShell을 다시 열고 애플리케이션 경로로 전환하세요. 이제 npm install express를 입력하면 ExpressJS를 설치할 수 있습니다. 보시다시피 Node 모듈은 .NET 애플리케이션의 "bin" 디렉토리와 같은 위치에 배치되며 여기에서 종속 프로그램을 호출하거나 "요구"할 수 있습니다.
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 和谐共存:
关于 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靠拢了, 对你而言同样是不是时候来辅助行动了呢?