您的位置:首页 > Web前端 > Node.js

nodejs初探

2013-10-22 11:42 295 查看
原文:
http://www.evernote.com/shard/s278/sh/733d97f3-8a2c-4dce-8b78-42cbabb3ba82/e0d113487f246efb5210fa23a5ef74f5

1、Nodejs在Windows下(以0.61为例)

注:此处不讨论nodejs老家Linux的情况

(1) 安装

通过官网下载(http://nodejs.org/)的安装包,下载msi文件(最新版是0.10,强烈建议下载最新版安装)。安装完成后也不会在桌面、开始菜单等处提供快捷方式图标。[1]

nodejs可以理解成是一个js解释器,它让一个.js文件即使没有浏览器环境也可以运行,例如想要执行一个叫 hello.js 的脚本,你只需在命令行下键入:

node hello.js

这个脚本就会被编译执行。

nodejs被默认安装到哪里了呢?

C:\ProgramFiles (x86)\nodejs

在该路径下你可以看到一个名称为node.exe的可执行文件,就是它。然而往往被安装在如此深的路径(而且文件夹还有空格有木有)下往往带来各种问题,因此,强烈建议你在安装过程中选择一个无中文和空格的安装路径。如果你已经选择默认安装路径并且想要移动它,只需将文件夹移动到你想要的地方,并且改变一下环境变量中的路径即可。[2]

需要注意的是,相应的PATH环境变量值也要变更(该环境变量是在安装过程中被添加的):

如果顺利的话,node已经可以正常运行了,在command命令行下输入:

node -v

将得到版本号:

(2) 使用

nodejs如何使用?

一种方法是直接在命令行下键入:

node

此时在命令行相当于一个js控制台,在其中输入任何js代码都可以直接得到结果。如 (1+1)←,将得到:2。

另一种方法在前文已经叙述过了,即直接编译脚本。

nodejs能做什么?

- 编写一个简单奔放的类似Apache的服务器程序:

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200,{'Content-Type': 'text/plain'});
res.end('HelloWorld\n');
}).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');
假设这段脚本被保存在demo.js中,只要在命令行中node它,一个服务器就搭建好了。(要验证它,你可以直接在浏览器中输入:http://127.0.0.1:1337,你会看到“hello world”。)

接下来还需要安装NPM,全称是NodePackage Manager,node的包管理器。nodejs自身那么单薄,对各种包就各种依赖了,因此安装npm就成为了某种必须的东西。[3]

2、NPM在Windows下

(1) 互联网传说的安装方法:在此之前你需要安装Git签出工具

由于github网站不支持直接下载打包了所有submodule的源码包,所以需要通过git工具来签出所有的源码。从http://code.google.com/p/msysgit/downloads/list,可以下载到msysgit这个Windows平台下的git客户端工具(最新版本文件为Git-1.7.7.1-preview20111027.exe)。在下载之后双击安装。

笔者注:以上是互联网很多处都提到的安装方法,笔者猜测之所以那么折腾,是因为当时npm还只存在于GitHub上,而现在如果仅仅是安装npm,我们已经不再需要上述工具了,当然你也可以跳过下面的步骤,直接看第三部分。

重点:下载NPM源代码。

打开命令行工具(CMD),执行以下命令,可以通过msysgit签出NPM的所有源码和依赖代码并安装npm。

git clone --recursive git://github.com/isaacs/npm.git
cd npm
node cli.js install npm -gf

在执行这段代码之前,请确保node.exe是跟通过node.msi的方式安装的,或者在PATH环境变量中。这段命令也会将npm加入到PATH环境变量中去,之后可以随处执行npm命令。如果安装中遇到权限方面的错误,请确保cmd命令行工具是通过管理员身份运行的。安装成功后,执行以下命令:

npm install underscore

返回:

underscore@1.2.2 ./node_modules/underscore

——————
(2) 一种笔者认为比较简单的方法是:

1、从浏览器下载npm源代码,地址:https://github.com/isaacs/npm/tags(以这个版本为例)

2、将下载下来的npm源代码解压到本地目录,如:d:\npm。

3、打开命令行完成安装:

d:\npm>node cli.js install -gf

ps:注意上文中的路径。

4、NPM安装完成后,将"D:\nodejs\node_modules"加入系统环境变量NODE_PATH中。

(3) 最简单的方法

GitHub上说,Windows下npm已经集成到node里了,有真相:

项目地址:https://github.com/isaacs/npm

另:这个页面上说最好装 0.8 或更高的版本,截止到本文撰写http://nodejs.org/download/ 官网上的最新版是0.10。

附:

node与npm各个版本:http://nodejs.org/dist

旧的版本的npm源代码中不包含依赖模块,若需要,请点击这里下载。

npm默认是访问了境外的服务器,曾经在网上看过一篇介绍其配置的文章,详细讲述了在离线的情况下将本地作为代理、设置npm默认从境内的镜像服务器下载代码的方法,有谁知道,请告知,感激不尽。

3、nodejs的必要扩展

仅仅安装nodejs和npm是显然不够的,尽管我们能够用nodejs编写一些“奔放的”代码。其中最重要的就是express框架了,安装express很简单[注:在网络畅通且顺利安装了npm的情况下,调出命令行,输入:

npm install express -g

命令行将显示下载和安装的过程:

两个题外话:

1、如果你通过代理服务器连网,可能上述安装会不成功,你需要配置一下 npm 的服务器代理,方法是在命令行中输入:

npm config set proxy http://username:password@server:port npm config set https-proxyhttp://username:password@server:port

username和password是你代理服务器的用户名与密码,server和port是你代理服务器的地址和端口号。

2、配置全局模块的安装路径与npm缓存,具体请看这篇教程

npm config set prefix "D:\node\node-global"
npm config set cache "D:\node\node-cache"

3、node世界里的一些东西

作为初学者大概需要了解的:

express对node做了一些扩展,提供了一些新的API,比如我安装了express之后再搭建服务器就可以在js里这么写:

var app = require('express').createServer();

app.get('/', function(req, res){
res.send('helloworld from csser.com!');
});

app.listen(3000);

如果你想深入了解express,请看这里

mongodb往往是node下常见的数据库,想深入了解,请看这里

hexo是node环境下一个不错的博客框架,想深入了解,请看这里

ejs和jade是node环境下常见的模版引擎,类似php的smarty,想深入了解,请访问谷歌。

doxmate可以帮助你快速编写一套API文档,详情请访问http://html5ify.com/doxmate/

注:

[1] 新的 for Windows 版本已经可以自己选择安装路径了,且在安装过程中会自动添加环境变量。而较老的版本,msi安装包不会提供任何选项,且需要手动设置环境变量。
[2] 现在的 for Windows msi安装包中还包含了npm,你可能还需要移动npm文件并设置相应的npm的环境变量。可以预见未来的 node for Windows msi 安装包中还会包含其他组件,若是这样,不建议新手手动移动安装目录,而可以通过重装改变,除非你知道你该怎么做。
[3]现在的 for Windows msi安装包中已经包含了npm,作为初学者,你完全可以跳过第二部分。

本文参考了:

[1] 深入浅出Node.js(二):Node.js&NPM的安装与配置 http://www.infoq.com/cn/articles/nodejs-npm-install-config
[2] 在Windows平台上安装Node.js及NPM模块管理 /article/5639063.html
[3] 【nodejs那些事儿】Nodejs && npm超灵活安装 -- Windows篇 http://cnodejs.org/topic/4fae80c02e8fb5bc650a8360
[4] Node入门 http://www.nodebeginner.org/index-zh-cn.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: