首页 web前端 js教程 在Mac OS下使用Node.js的简单教程_node.js

在Mac OS下使用Node.js的简单教程_node.js

May 16, 2016 pm 03:53 PM
mac node

这里有一篇很好的 Node.js 介绍文章 great nodejs intro ,它将给你一个非常方便的介绍 Node.js 和 CouchDB,并给出一个实例实现 REST 的服务用于执行书签的 CRUD 操作,使用 CouchDB 作为数据库。

本文将介绍在 Mac OS X 下安装并开始使用 Node.js ,这个过程大概需要 30 分钟左右的时间,其中我们还将安装 CouchDB,并实现基于 CouchDB 的 REST API。

本文假设你机器上已经装有Git,如果还没有,请参考此文进行安装。

安装 node.js 和 npm

最简单的方法是在 node.js 的官网上通过 the nodejs download section 页面并选择 Mac 下的安装程序,它将在你的机器上安装 Node.js 和 npm (node package manager). 
 安装成功后你就可以使用 node 和 npm 命令了。

安装 CouchDB

因为本文需要使用 CouchDB 来存储对象,因此还需要安装 CouchDB.

安装 CouchDB 稍微麻烦一些,因为我们需要下载源码然后编译I,在此之前需要先安装 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 文件,编辑内容如下:

复制代码 代码如下:
require 'formula'

class Couchdb < Formula
url 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
homepage "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'


请注意需要将 url 中的 source 删除,最终修改结果如下:

复制代码 代码如下:
require 'formula'

class Couchdb < Formula
url 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
homepage "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'

如果安装过程被挂起了,你需要 CTRL-C 终止并执行下面命令重试:

复制代码 代码如下:
./brew install -v couchdb

更多关于 Mac OS X 上安装 CouchDB 的信息请阅读 "Installing CouchDB on OSX".

一旦 CouchDB 编译完成,我们可以手工执行 ./couchdb 来启动它,你可以在浏览器中打开 http://127.0.0.1:5984/_utils 这个地址以验证 CouchDB 安装是否成功。

201562495503417.jpg (1009×575)

下载教程

现在所需的软件都已经安装完成,我们接下来继续 Node.js 的介绍实例。

首先我们使用 Git 来获取实例源码

git clone https://github.com/indexzero/nodejs-intro.git
创建 CouchDB 数据库
在开始教程之前我们需要创建一个 CouchDB 数据库,先确保 CouchDB 已经启动,然后使用如下命令创建数据库:

$ curl -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"ok":true}

你可以在浏览器中访问 http://127.0.0.1:5984/_utils 就可以看到新创建的数据库。

这里还有一个非常棒的 CouchDB 的指南。

开始教程

node js 实例使用模块化的方式构建,lib 目录包含很多模块,而服务器脚本在 bin 目录下。

例如,我们要启动 CouchDB 教程,可以在 bin 目录下执行下面命令:

./server -t 02couchdb -s

其中 -t 参数允许你指定要执行的 lib 目录下的模块,-s 参数用以设置我们刚建立的 pinpoint-dev 数据库。

sys - util 变化

根据 Node.js 的版本不同,你可能会看到如下的错误或者是警告:

复制代码 代码如下:
$ node -v
v0.7.7-pre

$ ./server -t 02couchdb -s

node.js:247
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: The "sys" module is now called "util".
at sys.js:1:69
at NativeModule.compile (node.js:572:5)
at Function.require (node.js:540:18)
at Function._load (module.js:297:25)
at Module.require (module.js:357:17)
at require (module.js:373:17)
at Object. (/home/ubuntu/nodejs-intro/bin/server:3:11)
at Module._compile (module.js:444:26)
at Object..js (module.js:462:10)
at Module.load (module.js:351:32)

为了避免这个问题,你需要将所有调用 `require("sys")` 替换成 `require("util")`

Node v0.6.14 不会抛出错误信息,但会提示警告:

复制代码 代码如下:
$ node -v
v0.6.14

$ ./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

运行教程

当你运行某个教程时,会提示一些错误:


复制代码 代码如下:
$ ./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'
    }
  ]
}
登录后复制

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

mac键盘输入密码无反应? mac键盘输入密码无反应? Feb 20, 2024 pm 01:33 PM

导读:本篇文章本站来给大家介绍有关mac键盘输入密码无反应的相关内容,希望对大家有所帮助,一起来看看吧。苹果Mac系统无法输入密码如何解决还可以尝试在其他计算机上连接这个键盘,看看是否正常工作。如果在另一台计算机上也出现同样的问题,那么很可能是键盘本身的故障。您可以考虑更换键盘或者修理它。第一次用你的Mac电脑登录支付宝时,你会发现登录界面,无法输入密码。密码输入栏显示:“请点此安装控件”,所以支付宝登录需要安装安全控件。安全控件,可以对你输入的信息(金额、密码等)进行加密保护,提高账号安全。系

3 招教你轻松自定义 Mac 计算机名、主机名和 Bonjour 名称 3 招教你轻松自定义 Mac 计算机名、主机名和 Bonjour 名称 Mar 06, 2024 pm 12:20 PM

许多Mac用户往往习惯保留设备的默认名称,可能从未考虑过更改。很多人选择沿用初始设置时的名称,例如“张三的MacBookAir”或简单的“iMac”。学会如何修改Mac的名称是一项非常实用的技能,尤其是在拥有多台设备时,可以帮助你快速区分和管理它们。接下来,我们将一步步教你如何在macOS系统中更改计算机名称、主机名和Bonjour名称(本地主机名)。为什么要更改Mac名称?修改Mac名称不仅能彰显个性,还能有助于提升使用体验:个性化你的Mac:默认名称可能并不符合你的口味,换一个自己喜欢的名字

mac装程序密码忘了? mac装程序密码忘了? Feb 20, 2024 pm 01:00 PM

导读:本篇文章本站来给大家介绍有关mac装程序密码忘了的相关内容,希望对大家有所帮助,一起来看看吧。苹果电脑安装软件密码忘了怎么办首先,在手机设置中找到iCloud并点击打开。接着,输入账号和密码。在登录按钮下方有一行小字,提示是否忘记ID或密码,点击这个选项。通常情况下,当您在登录界面多次输入错误密码后,MacBookPro会提示您使用已绑定的AppleID来重置密码。您只需按照系统提示的步骤进行操作即可完成密码重置。3、首先将Mac关机,然后重新开机,按下电源键的同时,立刻按住键盘上的com

pkg文件安装mac? pkg文件安装mac? Feb 20, 2024 pm 03:21 PM

前言:今天本站来给各位分享关于pkg文件安装mac的相关内容,如果能正好解决你现在面临的问题,别忘了关注本站,现在开始吧!macos过往版本pkg无法安装升级操作系统:如果您的笔记本电脑正在使用较老的操作系统版本,建议升级到最新的操作系统版本。因为较老的版本可能无法支持安装最新的macOS系统。在磁盘工具中选择“抹掉”,然后在格式中选择Macos扩展,不要勾选加密选项,也不要选择apfs格式,最后点击“抹掉”按钮,这样就可以解决无法完成macOS安装的问题。将应用程序的图标拖到以App开头的文件

苹果mac打字怎么翻页? 苹果mac打字怎么翻页? Feb 20, 2024 pm 12:54 PM

导语:今天本站来给各位分享关于苹果mac打字怎么翻页的相关内容,如果能正好解决你现在面临的问题,别忘了关注本站,现在开始吧!苹果MacBook笔记本电脑的触摸板使用技巧苹果电脑设置双指滑动的步骤如下:在电脑桌面上找到“设置”图标并点击。在设置界面中选择“触控板”,然后点击“滚动缩放”。在滚动缩放选项中勾选“滚动方向:自然”即可完成设置。在苹果电脑上设置使用两指滑动的方法很简单。首先,打开电脑并点击屏幕顶部的“设置”图标。在设置界面中,选择“触控板”选项。然后点击“滚动缩放”,确保勾选了“滚动方向

微信mac如何设置语音消息自动转成文字-设置语音转成文字的方法 微信mac如何设置语音消息自动转成文字-设置语音转成文字的方法 Mar 19, 2024 am 08:28 AM

近日有一些小伙伴咨询小编微信mac如何设置语音消息自动转成文字?下面就为大家带来了微信mac设置语音消息自动转成文字的方法,有需要的小伙伴可以来了解了解哦。第一步:首先,打开Mac版微信。如图:第二步:接着,点击『设置』。如图:第三步:然后,点击『通用』。如图:第四步:再勾选『聊天中的语音消息自动转成文字』选项即可。如图:第五步:最后,关闭窗口即可。如图:

mac对文件剪切到硬盘? mac对文件剪切到硬盘? Feb 20, 2024 pm 01:00 PM

导语:本文本站来给大家介绍有关mac对文件剪切到硬盘的相关内容,希望对大家有所帮助,一起来看看吧。Mac电脑如何将照片导出到移动硬盘Mac电脑可以利用“访达”(Finder)或“照片”(Photos)应用将照片导出到移动硬盘。使用“访达”(Finder)导出照片时,首先要确保移动硬盘已连接到Mac,并且Mac已成功识别。将Mac中的照片转移到硬盘的步骤很简单:首先,连接移动硬盘到电脑,然后打开【启动台】图标。接着,在弹出的窗口中找到并点击【照片】图标。在打开的【照片】窗口中,按住【Shift】键

在Mac上将HEIC照片转换为JPG的3种方法 在Mac上将HEIC照片转换为JPG的3种方法 Mar 15, 2024 pm 08:43 PM

默认情况下,iPhone以HEIC格式从相机拍摄照片。HEIC代表高效图像容器,可以容纳比PNG或JPG文件更多的像素数据,与其他格式相比,在iPhone存储上占用的空间显着减少。这些文件在iPhone上效果最佳,但并未在互联网上得到广泛接受,因为当您与非Apple设备共享这些文件时,它们通常会导致图片模糊/有颗粒感。为了确保HEIC图片在其他设备上可兼容,可能需要将其转换为JPG格式。本文将介绍在Mac上将HEIC图像转换为JPG的方法。如何在Mac上将HEIC照片转换为JPG[3种方法]方法

See all articles