> 웹 프론트엔드 > JS 튜토리얼 > Mac OS_node.js에서 Node.js를 사용하는 방법에 대한 간단한 튜토리얼

Mac OS_node.js에서 Node.js를 사용하는 방법에 대한 간단한 튜토리얼

WBOY
풀어 주다: 2016-05-16 15:53:14
원래의
1904명이 탐색했습니다.

다음은 Node.js 훌륭한 nodejs 소개에 대한 좋은 입문 기사입니다. 이 기사에서는 Node.js와 CouchDB에 대해 매우 편리하게 소개하고 Perform CRUD를 위한 REST 서비스를 구현하는 예를 제공합니다. CouchDB를 데이터베이스로 사용하여 북마크에 대한 작업.

이 글에서는 Mac OS X에서 Node.js를 설치하고 시작하는 방법을 소개합니다. 이 과정도 CouchDB를 설치하고 CouchDB 기반의 REST API를 구현하는 데 약 30분 정도 소요됩니다.

이 글에서는 Git이 이미 컴퓨터에 설치되어 있다고 가정합니다. 그렇지 않은 경우 이 글을 참조하여 설치하세요.

node.js 및 npm 설치

가장 쉬운 방법은 nodejs 다운로드 섹션 페이지를 통해 node.js 공식 웹사이트로 이동하여 Mac에서 Node.js와 npm(노드 패키지 관리자)을 설치하는 설치 프로그램을 선택하는 것입니다. 🎜> 설치가 성공적으로 완료되면 node 및 npm 명령을 사용할 수 있습니다.

CouchDB 설치

이 글에서는 객체를 저장하기 위해 CouchDB가 필요하므로 CouchDB도 설치해야 합니다.

CouchDB 설치는 소스코드를 다운로드한 후 컴파일해야 하기 때문에 조금 더 번거롭습니다. 그 전에 Homebrew를 설치해야 합니다.



git clone https://github.com/mxcl/homebrew.git
cd homebrew/bin
brew install autoconf automake libtool
brew install couchdb
로그인 후 복사

중요 참고 사항: CouchDB는 이전에 설치를 방해할 수 있는 문제를 보고했습니다. 이 문제를 해결하려면 ~/couch/homebrew/Library/Formula/couchdb.rb 파일을 수동으로 편집해야 합니다.


코드 복사 코드는 다음과 같습니다.
'수식' 필요

클래스 Couchdb <수식
URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
홈페이지 "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'

최종 수정 결과는 다음과 같습니다.


코드 복사 코드는 다음과 같습니다.
'수식' 필요

클래스 Couchdb <수식
URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
홈페이지 "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'

설치 프로세스가 중단되면 CTRL-C를 눌러 종료하고 다음 명령을 실행하여 다시 시도해야 합니다.



코드 복사 코드는 다음과 같습니다.
./brew install -vuchdb

Mac OS X에 CouchDB 설치에 대한 자세한 내용은 "OSX에 CouchDB 설치"를 참조하세요.

CouchDB가 컴파일되면 ./couchdb를 수동으로 실행하여 시작할 수 있습니다. 브라우저에서 http://127.0.0.1:5984/_utils 주소를 열어 CouchDB 설치가 성공했는지 확인할 수 있습니다.

201562495503417.jpg (1009×575)

튜토리얼 다운로드

이제 필수 소프트웨어가 설치되었으므로 Node.js 소개 예시를 계속 진행하겠습니다.

먼저 Git을 사용하여 인스턴스 소스 코드를 얻습니다

git 클론 https://github.com/indexzero/nodejs-intro.git
CouchDB 데이터베이스 생성
튜토리얼을 시작하기 전에 먼저 CouchDB 데이터베이스를 생성해야 합니다. 먼저 CouchDB가 시작되었는지 확인한 후 다음 명령을 사용하여 데이터베이스를 생성해야 합니다.

$ 컬 -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"알았어":사실}

브라우저에서 http://127.0.0.1:5984/_utils를 방문하면 새로 생성된 데이터베이스를 확인할 수 있습니다.

여기에는 CouchDB에 대한 훌륭한 가이드도 있습니다.

튜토리얼 시작

노드 js 인스턴스는 모듈식으로 구축됩니다. lib 디렉터리에는 많은 모듈이 포함되어 있으며 서버 스크립트는 bin 디렉터리에 있습니다.

예를 들어 CouchDB 튜토리얼을 시작하려면 bin 디렉터리에서 다음 명령을 실행할 수 있습니다.

./server -t 02couchdb -s

-t 매개변수를 사용하면 lib 디렉토리에 실행될 모듈을 지정할 수 있고, -s 매개변수는 방금 생성한 pinpoint-dev 데이터베이스를 설정하는 데 사용됩니다.

sys - 유틸리티 변경

Node.js 버전에 따라 다음과 같은 오류나 경고가 표시될 수 있습니다.

코드 복사 코드는 다음과 같습니다.
$ node -v
v0.7.7-pre

$ ./server -t 02couchdb -s

node.js:247
           e; // process.nextTick 오류 또는 첫 번째 틱에서 '오류' 이벤트 발생
              ^
오류: "sys" 모듈은 이제 "util"이라고 합니다.
sys.js:1:69
NativeModule.compile(node.js:572:5)
Function.require(node.js:540:18)
Function._load(module.js:297:25)
Module.require(module.js:357:17)
필요 시(module.js:373:17)
개체에서(/home/ubuntu/nodejs-intro/bin/server:3:11)
Module._compile(module.js:444:26)
Object..js에서(module.js:462:10)
Module.load에서(module.js:351:32)

이 문제를 방지하려면 모든 호출 `require("sys")`를 `require("util")`로 바꿔야 합니다

노드 v0.6.14에서는 오류 메시지가 표시되지 않지만 경고 메시지가 표시됩니다.

코드 복사 코드는 다음과 같습니다.
$ node -v
v0.6.14

$ ./server -t 02couchdb -s
"sys" 모듈은 이제 "util"이라고 불리며 비슷한 인터페이스를 갖습니다.
http://127.0.0.1:8000

에서 02couchdb를 수신하는 데모 서버를 찾아보세요.

튜토리얼 실행

튜토리얼을 실행하면 몇 가지 오류가 표시됩니다:


코드 복사 코드는 다음과 같습니다.
$ ./server 02couchdb
The "sys" module is now called "util". It should have a similar interface.

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'optimist'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object. (/Users/ddewaele/Projects/Node/nodejs-intro/bin/server:5:12)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)

该教程包含很多依赖,我们需要使用 npm 来下载这些依赖的包。

安装 node 包

Node packages (dependencies) 可通过 npm 命令来安装,例如:

$ npm install optimist
npm http GET https://registry.npmjs.org/optimist
npm http 200 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz
npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz
npm http GET https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/wordwrap
npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
optimist@0.2.8 ../node_modules/optimist
└── wordwrap@0.0.2
로그인 후 복사


这些包将被安装到 node_modules 文件夹中:

$ ls -l ../node_modules/
total 0
drwxr-xr-x 10 ddewaele staff 340 Apr 1 18:54 optimist
로그인 후 복사


本文需要安装如下的 node 包:

npm install winston
npm install cradle
npm install journey
npm install optimist
로그인 후 복사

运行教程

进入 bin 目录,通过下面命令来运行教程:

$ ./server -t 02couchdb -s
The "sys" module is now called "util". It should have a similar interface.
Pinpoint demo server listening for 02couchdb on http://127.0.0.1:8000
로그인 후 복사

然后打开浏览器访问 http://127.0.0.1:8000/bookmarks ,将会看到如下的结果:

复制代码 代码如下:
{"bookmarks":[]}

这表示服务已经启动并运行,为了在 CouchDB 中添加点测试数据,我们可以使用 http-console 控制台来访问 CouchDB 的 REST 服务。

安装 http-console

有一个非常棒的工具可以帮助你调试服务,该工具名为 http-console ,你可使用 npm 来安装:

sudo npm install -g http-console
로그인 후 복사

然后就可以在命令行中执行该工具,不幸的是当我们执行该命令时报错了:

$ http-console
 
 
node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
       ^
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
  at Function. (module.js:378:11)
  at Object. (/usr/local/lib/node_modules/http-console/bin/http-console:6:8)
  at Module._compile (module.js:441:26)
  at Object..js (module.js:459:10)
  at Module.load (module.js:348:31)
  at Function._load (module.js:308:12)
  at Array.0 (module.js:479:10)
  at EventEmitter._tickCallback (node.js:192:40)
로그인 후 복사


很麻烦,我们还需要手工编辑 /usr/local/lib/node_modules/http-console/bin/http-console 文件,然后删除下面这一行:

复制代码 代码如下:
require.paths.unshift(path.join(__dirname, '..', 'lib'));

现在 http-console 就可以启动了,无需任何参数,它将连接到 http://localhost:8080 ,如果你需要指定服务器和端口,把它作为第一个参数传递给 http-console 即可。

请注意我们这里使用了 \json 命令用来设置正确的 content-type:

$ http-console http://127.0.0.1:8000
The "sys" module is now called "util". It should have a similar interface.
> http-console 0.6.1
> Welcome, enter .help if you're lost.
> Connecting to 127.0.0.1 on port 8000.
 
http://127.0.0.1:8000/> \json
http://127.0.0.1:8000/>

로그인 후 복사

访问 REST 服务

在 http-console 中,要执行 GET 请求只需要输入 GET /bookmarks 即可:

http://127.0.0.1:8000/> GET /bookmarks
HTTP/1.1 200 OK
Date: Sun, 01 Apr 2012 17:23:27 GMT
Server: journey/0.4.0
Content-Type: application/json;charset=utf-8
Content-Length: 16
Connection: keep-alive
 
{
  bookmarks: []
}
로그인 후 복사


你也可以使用 JSON 的片段来执行 POST 请求:

http://127.0.0.1:8000/> POST /bookmarks
... { "url": "http://nodejs.org" }
HTTP/1.1 200 OK
Date: Thu, 05 Apr 2012 11:45:55 GMT
Server: journey/0.4.0
Content-Type: application/json;charset=utf-8
Content-Length: 91
Connection: keep-alive
 
{
  bookmark: {
    _id: 'WD-G-1',
    resource: 'Bookmark',
    url: 'http://nodejs.org'
  }
}
로그인 후 복사


然后再次执行 GET 请求,你就可以看到新插入的数据了:

http://127.0.0.1:8000/> GET /bookmarks
HTTP/1.1 200 OK
Date: Sun, 01 Apr 2012 17:23:27 GMT
Server: journey/0.4.0
Content-Type: application/json;charset=utf-8
Content-Length: 16
Connection: keep-alive
 
{
  bookmarks: [
    {
      _rev: '1-cfced13a45a068e95daa04beff562360',
      _id: 'WD-G-1',
      resource: 'Bookmark',
      url: 'http://nodejs.org'
    }
  ]
}
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿