Node.js先睹为快(1)

这篇文章来自于《Lynda.com.Node.js.First.Look》。


Node.js主要的作用是一个脱离浏览器的js调试器,是一个开源项目,官网地址:http://nodejs.org/,本来项目的名称是可以叫node的,但由于项目名称太短容易造成重名,所以定义为Node.js,我们也可以在描述中简称Node.js为Node。


安装过程没什么好说的,安装完成之后如果需要调试,可以编辑一个js文件

console.log("Hello world");

之后在命令行中运行:

node testnode.js

即可观察运行结果。


接下来我们看看Node的威力。这里我使用的Windows平台,并且使用Komodo作为我的开发工具(视频里都是OS X的,但我没有环境。Komodo包含了Node的templete,所以在这里用比较合适。)


首先我们来测试一段代码:

var os = require('os');

var message = 'This script is running on Node.js ' + process.version + ' on a ' + os.type() + '-based operation system.';

console.log(message);

从运行结果可以看出,我们从命令行运行的这部分Node代码和在浏览器中运行的js代码还是稍有不同的。

例如,我们可以在google chrome浏览器的“工具->javascript控制台”中输入js代码并运行。

同样,如果我们在命令行中直接运行:node,将会跳出一个Node的控制台并且允许我们输入js代码并运行。我们可以通过连续按两次Ctrl+c或者一次Ctrl+d或者运行process.exit()退出Node控制台,返回系统的command line。


我们可以通过运行npm install node-dev -p来安装node-dev模块,这个模块允许开启“调试中编辑-再继续调试”的功能。


我们运行:node-dev test.js,之后可以看到控制台停止,之后我们编辑test.js文件,可以发现每保存一次,我们的script会被重新运行一次。我们可以通过Ctrl+c退出dev模式。


Node是模块化的,并且提供了很多的模块可以供我们使用,例如我们之前的require('os')就是得到一个os的引用。

我们来看一下自己定义的模块:

我们定义一个导出斐波那契数列的模块:

exports.data = [1, 1, 2, 3, 5, 8, 13, 21];

然后我们使用这个模块:

var sequence = require('./fibonacci.js');

console.log(sequence.data);

就能够得到其中的数据。


对于我们自己下载的模块,我们需要将其拷贝到工程的node_modules目录下,并根据其目录中对应的package.json中定义的name来获取这个模块的引用,例如我们需要使用markdown模块,我们使用代码:

var parser = require("node-markdown");

var html = parser.Markdown('Using **markdown** helps you focus on writing, *not* on markup.');

console.log(html);

对于很多的模块,我们可以通过npm search查找自己需要的模块。(第一次运行的时候需要建立索引缓存可能会比较慢。)在unix/linux上可以通过grep过滤一些信息,window上就不行了,不过我们直接使用npm search zip可以查找包含zip关键字的模块。我们也可以去 https://npmjs.org/这里搜索我们需要的模块。

如果我们需要安装某个模块,只需要运行:npm install <模块名>即可。注意安装位置是控制台当前目录(大多数情况下我们需要在工程目录下运行这个命令)。

对于我们自己的模块,我们只需要在模块目录下运行npm init即可生成我们的package.json文件。


我们使用Node Packaged Modules(简称npm)来管理我们的模块,具体关于npm的总结如下(我们以markdown模块为例):

  1. 搜索node模块:npm search node-markdown(也可以去https://npmjs.org/搜索)
  2. 安装node模块:npm install node-markdown,每个下载来的模块都在工程的node_modules目录下有一个子目录,其中放置自己的配置文件、源文件,等等。
  3. 可以在工程中运行:npm init生成工程的package.json文件,并编辑其中的"dependencies"段添加工程依赖的module,之后通过npm install即可安装工程所需的所有模块;
  4. 更新工程中的module依赖项:npm update;如果需要更新全局的模块,使用-g选项:npm update -g;
  5. 当我们不需要某个module时,我们需要删除package.json文件中的dependencies对应项,并且运行:npm prune,即可删除原先的module;


package.json文件类似于:

{
  "name": "html",
  "version": "0.0.0",
  "description": "ERROR: No README.md file found!",
  "main": "script.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
	  "node-markdown": "0.1.0"     这里的版本可以用"*"来表示依赖于最新版本  
  },
  "repository": "",
  "author": "jariwsz",
  "license": "BSD"
}

ok,到这里基础部分讲完了,后面主要讲如何使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值