Node.js 初体验

参看原文链接:

http://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html?ca=drs

下面记录一下我的学习经历:

1。首先我在 node.js 的官方网站上面下载了 mac os 平台上面适用的安装包,

然后将其安装到了电脑里面(一路的next)~


2。然后我将上面那篇教程里面的 Random.js 弄了下来,

照文章作者的说法在 Terminal 里面执行了命令:

node /Users/user/Desktop/Random.js

好,问题来了,控制台打出一片报错信息

(不知道是不是因为 node.js 做版本升级所导致的,或者是缺少文中所说的其他 module?)

下面我把报出的错误信息贴出来供参考:


因为今天是初次接触 node.js,所以这些报错信息真看得我一头雾水。管他的,google之~

我搜索到一些有用的信息,参看链接:

Node.js EACCES error when listening on most ports

我获知了一些东西,原来还可以像下面这样直接在 Terminal 里面书写 js 脚本:

var h = require('http').createServer();

h.listen(900);

原帖中的作者在用 node 命令解释执行这些 js 代码的时候,同样也报出了一版的错误,

我把我执行这些 js 代码的报错信息贴出来(和原帖作者贴出来的报错信息不一样,有点儿奇怪~)


和之前的错误有点儿相似:

events.js:66 throws arguments[1]; // Unhandled 'error' event

到这里的话,基本上就可以确定,错误首先不是由主体逻辑里面的代码所导致的。

肯定是有些要注意的地方我没有注意到,继续探索。。。

我试着执行了一句js 代码:

console.log('hello world!');

比较奇怪,在正常地打印出 “hello world!” 以后,出现了一个 "undefined" 字符串,如下:


在网上查了下,发现了一个有参考价值的帖子:

node.js displays “undefined” on the console

MVP 答复如下:

Just write "hello world"; and hit enter... it will return "hello world" instead of undefined

thus no undefined is displayed. 

console.log returns undefined and also logs arguments to console so you get multiple messages.

大意就是 log 函数除了发挥其固有的作用将传入的参数 “hello world!” 打印出来,

也会在随后将返回值打印出来,因为返回值是 undefined,所以便有一个 undefined 跟在后面了~

。。。。。。。。。。。。。。。。。。。。。。。。。。。

吃完晚饭,继续研究 node.js~

又一个给力的帖子给我找出来了,我真是打心眼儿里感激 stackOverFlow,咋就能做的这么好呢~

Node.js EACCES error when listening on most ports

我勒个去,这不就是之前贴出来的那个链接么,汗~

之前没有仔细盯着这个帖子看下去,吃完饭后没有什么后顾之忧便多瞧了一眼。

亮点在下面这段代码里面:

var server = require('http').createServer();
var port = process.env.PORT || 3000;
server.listen(port, function() {
	console.log('Listening on ' + port);
});
说实话我并没有太看懂第二行代码,我的猜测是如果端口 3000 被占用的话,

node.js 会另外挑一个没有被占用的端口来做监听~

不知道我猜的正不正确。。

我把这块代码输进 Terminal 试了一下,发现服务已经正常的开启了。

我勒个去,搞来搞去就是端口被占用了?

于是我又把之前 Random.js 中的端口由 80 改为了 3000

再在 Terminal 里面执行了一下如下的命令:

node /Users/user/Desktop/Random.js

果然,这里也可以正常地跑起来了。。

然后打开我的 Chrome,在地址栏里面输入:

http://locahost:3000?number=50

页面里面反馈了一个 0~50 之间的数字,ok,搞定~


PS:

Unity3D 可以用 js 来开发

Titanium 可以用 js 来做跨平台移动开发

Photoshop 可以用 js 来写功能扩展

大名鼎鼎的 jQuery

构建在或者对 js 提供支持的物件可谓是多不胜数啊 

JavaScript 如此火爆,看来得空我得好好研究一番~


另外,发一个 mac 下面查看端口被哪个 app 占用的命令(得输一下管理员的密码):

sudo lsof -i:80

之前不是有说服务无法正常开启就是因为端口被占用了么

于是我试着用如上的命令查看了一下

果然发现有点儿猫腻,原来 80 端口是被 Google Chrome 给占了



Ok,到这里就算结了,对 node.js 总算有了些基本的了解了

后面如果有条件的话,有想法用 node.js 架一个服务器开设我的个人博客~



转载于:https://www.cnblogs.com/yang3wei/archive/2012/09/17/2739612.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值