【我可以你也可以的Node.js】第二篇 - 暧昧萌芽的第一句话

如果你是因为标题点进来的...
恭喜你被我骗点阅了,现在返回也来不及,除非你返回在点进来一次,不信你试试看。ლ(́◕◞౪◟◕‵ლ)
主要是这週情人节应景一下~


这篇主要学习目标( • ̀ω•́ )

嗨各位~ 我是Robin,我又来了~
没错!你想得没错第二篇我们要说的就是Promise。(๑•́ ₃ •̀๑)

咳嗯~咳嗯~
今天重点是要说的是Hello world啦xD
来一起牵手牵__来学习 (灬ºωº灬)
正式来看看这篇主要要介绍的几点项目

Node 情窦初开的初次认识Node 暧昧的交换联络方式Node 让你心跳加速感情升温常见基本命令Node 第一次见面说Hello!保证成功!

为什么?ლ(゚д゚ლ)

因为我相信大部分人接触第一个语言的第一步就是想办法印出Hello world,又或是一些比较夯的语言教程第一个几乎都是Hello world。(凡事都有特例xD)

看看那些第一个教程教Hello world 的语言各个都发光发热。
再看看我以前对心仪对象的第一句话都是...
给约吗ლ(・´ェ・ლ)?给约吗ლ(・´ェ・ლ)?给约吗ლ(・´ェ・ლ)?给约吗ლ(・´ェ・ლ)?
难怪我没有发光发热QQ

假使我以前就对她说...
Hello world!ლ(́◕◞౪◟◕‵ლ)Hello world!ლ(́◕◞౪◟◕‵ლ)Hello world!ლ(́◕◞౪◟◕‵ლ)
搞不好我就会成功了(◔౪◔) (才不会


Node 情窦初开的初次认识

相信各位在跟帅哥或是妹子第一次认识的时候总是会先调查或是先聊聊熟悉彼此,那一开始就当然要先说一下关于Node我在书上看到的一些有趣,且应该要知道的项目条列出来。

Node.js允许通过JavaScript和一系列模组来编写伺服器端应用和网路相关的应用。
From 维基百科

简单来说。:.゚ヽ(*´∀`)ノ゚.:。
Node Application = Javascript+(一堆module)
这些module 可以透过npm进行管理与安装(之后会有独立的文章做说明)

NodeJs与其他语言最大的差异是非阻塞式

简单来说就是多条程式码是可以同时被执行的,通过callback或是其他方式的回呼得知程式已执行完成。
详细的可以参考此文章或是自行Google研究
(我自己因为这个设计在Nightwatch.js蛋疼了好一阵子...இдஇ)

大部分实作是使用Google爸爸的V8引擎

这个引擎简单来说就是Google为了Chrome所设计,这个引擎把原本多年的Javascript一般的直译为了提升速度用JIT(just-in-time)编译成机械码,变好快好快好讚好讚。
(其实我也感受不出来快在哪讚在哪Orz 我是麻瓜...)
ヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ
然后这引擎是用C++写的。From 本书
如果要看更详尽的也可以看这位大大的文章
JS 原力觉醒 Day02 - JavaScript V8 引擎

现在Node.js可以无痛直接使用ES6的功能

以前要使用新的ES6功能时,
要在执行程式时使用harmony旗标。
那是什么?不重要!(说好的求知慾?(눈‸눈))
你只要知道现在可以直接爽爽用就好了~讚讚。
But!(((゚Д゚;)))
要在V8的稳定版本才预设开启不用旗标。
不然都要像是以下使用旗标才能使用

node --harmoney test.js 

以上。
如果有一定要知道但我没有列出来的可以留言补充跟我说~

另外!这边这边还有一个小故事我觉得满有趣的有兴趣可以看一下。

Node.js第一个第一个官方释出版本是Node 4.0,不是Node 1.0
原因是因为有一群Node维护者因为io.js派认为Joyent这家维护Node
的公司对于Node的开放不够积极和对于V8引擎支援很落后因此吵架分裂组成io.js,后来两派吵架和好之后複合把两派程式合併,变成了官方第一版Node 4.0。
所以 Node 4.0 = Node 1.0 + io.js 3.0


Node 暧昧的交换联络方式

这部分其实就只是安装的部分啦~
想跟妹子或帅哥有了初次认识之后,
想要进一步是不是得要交换联络方式,
光纸上谈兵是没用的!(灬ºωº灬)

这部分书上说看官方比用写的还快(嗯~当然xDD)
但是我觉得各位读者都读到这了我还是附上连结和懒人包xDD
官方连结点我
不想去官方看我的下面~(≧∀≦)ゞ

MacOS 使用brew(真香)

brew install node

Ubuntu 使用apt-get(真爽)

sudo apt-get install -y nodejs

Windows的同学~ 使用安装器

直接点我


Node 让你心跳加速感情升温之常见基本命令

各位啊~加完人家联络方式不管是Line还是Facebook
总是要踏出第一步跟人家私底下聊一下吧!

安装完之后要怎么开始咧~
打开你的Terminal!(该面对的还是要面对!)
打指令才是工程师的浪漫啊xDD
以下举几个感觉比较常用的

列出版本号

node -v

执行Node应用程式

node <fileName>

Debug模式执行Node应用程式

Node.js提供除错模式,使用以下指令可以参考这篇文章所列举的指令来除错
(看起来好猛

node debug <fileName>

列出所有选项和参数

node --help

检查Node应用程式的语法

这边他不会执行程式只会帮你检查语法而已

node -c <fileName>ornode --check <fileName> 

对一行Node脚本求值输出结果

这边以书中的可以检查环境变数时以输出process.env属性所有值为例
(这部分他说第二章节会谈到环境变数时特别有用,目前我也不是那么了解,等我读到那在特别做注记吧~)

node -p "process.env"

升级更新Node

先使用上面提到的node -v可以先看一下版本

使用以下套件安装程序(Windows不用sudo)

sudo apt-get updatesudo apt-get upgrade --show-upgraded

使用npm升级Node(我比较顷向用这个)

sudo npm cache clean -fsudo npm install -gsudo n stable //如果要使用最新的稳定版请用这个sudo n latest //如果要使用真的最新版本请用这个

之后还会提npm 所以这篇先不要~ 虽然也没啥xD
有用过python pip的同学,我觉得大概就是类似的东西
(如果完全不一样请鞭QQ)


Node 第一次见面说Hello!保证成功!

如同一开始说的,
假如我一开始是对心仪的女生说"Hello" 不要说给约吗?
搞不好...好不巧...
我就能成功~
在Node也是一样(胡扯
我们先来建立一个helloWorld.js档

完整Code

var http = require('http');http.createServer(function (req, res) {  res.writeHead(200, {'Content-Type': 'text/plain'});  res.end('Hello World!');}).listen(8080);console.log('HTTP server is listening at port 8080...');

然后再terminal运行这支档案

node helloWorld.js


接着我们可以直接打开浏览器输入

http://localhost:8080/

以上。

理解Code

第一部分

var http = require('http');

这行的意思是汇入http这个模组然后指派给'http'这个变数

第二部分

http.createServer(function (req, res) {  res.writeHead(200, {'Content-Type': 'text/plain'});  res.end('Hello World!');}).listen(8080);

这部分简单来说就是使用刚刚指派的http变数建立一个http伺服器,
然后用callback的方式,
当有人访问这个http伺服器时做下面callback的内容。
而这边callback可以指派两个参数(req,res)
分别是指request(请求),response(回应)
而我这边做的动作分别是
分配head为200的statusCode表示正常
然后内容不管是谁访问都印出"Hello World"

如果要参考更详细的解说我觉得这位大大这篇写的不错可以参考一下

以上。

感谢各位大大看到这参与我一起学习。
有需要补充或是写错的部分再麻烦留言跟我说QQ


这週的小心得

原本上週六当天要发两篇
但是手残...拉到上一页内容直接消失。
(◢▆▅▄▃崩╰(〒皿〒)╯溃▃▄▅▇◣)
不过以上都不是理由也不是藉口,该还的还是要还。
内容消失是事实,重新编排也是事实Orz...
(现在我都用HackMD先打草稿因为他会随时帮我备份xD)
当我翻开这本书的第一章节说时迟那时快很快的看完了,
正当我面带着微笑翻到了第二章节...
嗯~我的笑容已不再 ( ´゚Д゚`)
我真的是很多都不会欸இдஇ

是时候要来一下最近满夯的自信废

不过我会努力的(╥﹏╥)

谢谢各位! 下集待续~

P.S.
不知道像我一样是真的什么都不会,就来参加这写文马拉松的多不多QQ
跟我一样的在底下留言可以让我知道...可以互相取暖xD


参考来源:

最上方Banner设计于fotojet
我买的这本书
JS 原力觉醒 Day02 - JavaScript V8 引擎
Node.js学习笔记一:Node.js的Hello World
nodeJs教程
Hello World source code


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章