新手学node.js的几点疑问
发布于 3年前 作者 keke3399 1782 次浏览

1.现在最新版本是0.8.2,不到1.0应该还没稳定吧?我看文档api变化挺大的,早些时候好像是sys模块,现在变成了util,这样在以后是否会不兼容? 2.require(‘模块’),是否所有模块都必须先require?有没有像java的java.lang那样默认包含的模块,是哪个或哪些? 3.感觉node.js的核心或者自带的api比较少,这样是否说明现在node.js能实现的功能还比较少?还不能像其他脚本语言那样(python等)实现全面shell编程? 4.后台网站连接数据库是基本功能,node.js好像没有自带,而要安装第三方模块,这样会不会像php那样引起连接数据库操作的不统一?

7 回复

问题都好犀利! 等高人来答… 不过 Node 核心是 JS, 这个弱点改不了, require 引用模块不可少的. https://github.com/joyent/node/wiki/Modules http://search.npmjs.org/

我来回答一下第一个问题吧。

现在 node 的文档里都标了 Stability (稳定性级别),像 util 现在是 Stability: 5 - Locked 应该就不会变了。 文档里有关于 Stability Index 的说明 http://nodejs.org/api/documentation.html

顺便去统计了下 Node 核心模块的情况:

STDIO: 4
Timer: 5
Modules: 5
Util: 5
Events: 4
Domain: 1
Buffer: 3
Stream: 2
Crypto: 3
TLS: 3
StringDecoder: 3
FileSystem: 3
Path: 3
Net: 3
UDP: 3
DNS: 3
HTTP: 3
HTTPS: 3
URL: 3
QueryString: 3
Punycode: 2
Readline: 2
VM: 2
ChildProcess: 3
Assert: 5
TTY: 2
Zlib: 3
OS: 4
Debugger: 3
Cluster: 1

统计结果: 5-Locked 4 4-API Frozen 3 3-Stable 16 2-Unstable 5 1-Experimental 2

Stability 为 4 和 5 的原则上不会改变接口,3 的只可能做小的调整,并且就算改变也会保证向下兼容(Backwards-compatibility is guaranteed)。

对我来说,比较常用的模块都在3及以上了,所以在我看来 Node 已经是比较稳定的了。

统计结果格式乱了(不能对回复进行编辑好尴尬啊)

5-Locked       4
4-API Frozen   3
3-Stable       16
2-Unstable     5
1-Experimental 2

第一个问题可以看论坛文章:Node.js文档学习笔记 第二个问题:ECMAScript范围内的都是不用require,这个可以看一些JS的基础规范 第三个问题:nodejs的第三方扩展模块是相当多的,本身自带的api都是基础功能覆盖。 第四个问题:我个人感觉这个更自由,比一味的jdbc强吧,再说nodejs的数据库搭档首选是NoSQL数据库而不是关系数据库。

  1. 楼上已回答
  2. 在Node.js中,所有的模块(包括核心模块、文件模块和第三方模块)都需要用require进行获取,在表层环境中,Node.js所带有的API,也就只有JavaScript标准中所定义的Function、Object、Array等构造函数和process、console等对象。
  3. 这是一个误区,Node.js的API并非少,而且十分详细,我们可以用他们的不同组合,实现不同的功能,开发出不同的框架。当然,如果你还是觉得不够,可以写一个C/C++ Addons,通过系统底层来拓展API。
  4. Node.js是一个平台,而且是一个崇尚轻量化、灵活性的平台,我们完全可以把PHP比喻成“一条龙服务”,而Node.js则是“高级自助餐”,能伸能缩,大道至简。Node.js原生不带数据库连接功能,是为了保持Node.js的灵活性,也是一个聪明的举动,Node.js没有向哪一种数据库招手。

复杂环境往往不是一种数据库的问题

回到顶部