趁热打铁学node
前言
- 不废话直接官网下载安装。
- windows安装很简单,双击ok. 完成后命令行输入node -v. 会提示版本号,说明安装成功(Node.js 还自动附带安装了 npm,类似ruby的gem)。
- linux安装。对于linux我是菜鸟,并且安装要麻烦一些,俺废了一天的劲终于在centos下安装完成。后来一问才知道人家大神都是直接命令行的那种系统,瞬时崩溃了。 大概总结下来就是:注意python的编译环境,时刻注意自己的权限够不够。
4. sublime text 一个灰常不错的编辑器. 使用入门
开始干活
1. 来个helloworld
创建test.js 输入:console.log('hello world');
打开命令行到你的当前目录(test.js所在目录),执行 node test.js 回车。
如下图所示
2. $ node -e "console.log('Hello World');"
Hello World
3. $ node
>console.log('hello world');
Hello World
undefind
需要注意的地方:第一句话是打印的结果,第二句话是说函数返回值。
4. 创建httprequest如此简单
a. 新建test1.js. 拷贝如图代码, node test1.js.
b. 打开浏览器,输入 http://localhost:3000/ 可以看到效果。web版hello world.
var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'content-type':'text/html'}); |
这个模块中第一句话 require('http'). 是应用node.js中的http模块。 凡是node.js提供的模块均可以直接require.
5. 通过上面运行,可以看到和asp.net 有一些不同。 asp.net 是通过浏览器发出请求->IIS->解析渲染成html返回。 而node则直接面向浏览器。
总结
1. node.js不是javascript库,和jquery、extjs不能相提并论。node.js是让脚步运行在服务端的平台.
2. npm是node.js包管理器,可以全局安装,也可以只安装到工作目录。重复利用的一般选择全局安装,而本地安装则一般是当前程序使用。
3. 在windows下安装,会在自动配置环境变量。所以可以直接输入node命令。
4. 第三方包够不够多:
(npm)Total Packages: 49 639
node.js够不够活跃
1 154 560 | downloads in the last day |
29 060 396 | downloads in the last week |
5. node.js架构: 说实在的这张图我看到node下层接口,在向下就看不懂了,V8我还知道一些,google浏览器就是基于v8引擎开发,而javascritp在google运行良好,所以我也更好的理解了node.js。
来自Node.js开发指南
5. 事件驱动,异步:
a. nodejs内部是单进程,单线程的方式运行。nodejs通过单线程维护一个事件循环队列来应对http并发的访问,同时也避免了进程/线程之间的切换。那么对未来服务器的多核时代、甚至是众核nodejs是怎么处理的。我的理解是nodejs调用C++代码,c++代码实现多线程,这样暴露api供nodejs使用者调用,实现充分利用cpu。后来看到文章(nodejs多线程,真正的非阻塞),更坚定了学习node的信心。
b. 放眼望去全是callback. 同步和异步就是 m+n 和 max(m,n)。这样node.js开发就要求我们转换开发思路。
6. 为什么要趁热,看很多资料发现都调试不过,我就各种查询也了解了很多知识,才可以调试通过。
7. node擅长干什么,不擅长干什么?
nodejs为网络而生,剩下的就不用说了。
nodejs不适合做什么? (以下内容来自nodejs开发指南)
a. 计算密集型的程序
b. 单用户多任务型应用
c. 逻辑十分复杂的事务
d. unicode与国际化
8. 有问题还是去 stackoverflow
9. 中文资料汇总
参考资料:
深入浅出node.js
node.js学习指南
下一站:
使用express创建一个网站,数据库使用mongodb.
模板使用ejs.
趁热打铁学node的更多相关文章
- 从零开始学node(一): nodejs开发环境的配置
从零开始学node系列(一): nodejs环境安装 一.安装node.js 1. node官网,node安装十分方便快捷,所以这一步还是很顺利的. 2. webstorm是一款强大的前端开发IDE, ...
- 打算写一个《重学Node.js》系列,希望大家多多支持
先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js ...
- 一起来学node.js吧 node school简介
node.js这几年火爆的简直丧心病狂,去lagou.com查查node.js的职位,那叫一个多. 要说火爆到什么程度,竟然有一个网站专门去教大家学习node.js, Node School. 进去逛 ...
- 让我们一起学Node.js-文章列表
新浪的博客最近不给力,只好在博客园落个窝.至此之后,技术随笔会在博客园以及新浪的博客上同时更新,如果新浪给力的话~~~ 如果你想看先前新浪博客上分享的技术,请点击此处 忘尘子新浪博客! 我是拜读了朴灵 ...
- .NET程序员也学Node.js——初识Node.js
清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...
- 为什么 2020 还要学 Node.js
更佳阅读体验 https://www.yuque.com/sunluyong/node 前言 前些日子刷知乎看到个 2019 年初的问题 2019年nodejs凉了吗?凉到什么程度了?才看到问题的时候 ...
- 手把手教你学node.js 之使用 eventproxy 控制并发
使用 eventproxy 控制并发 目标 建立一个 lesson4 项目,在其中编写代码. 代码的入口是 app.js,当调用 node app.js 时,它会输出 CNode(https://cn ...
- 手把手教你学node.js之使用 superagent 与 cheerio 完成简单爬虫
使用 superagent 与 cheerio 完成简单爬虫 目标 建立一个 lesson 3 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/ 时,输出 CNo ...
- 手把手教你学node.js之学习使用外部模块
学习使用外部模块 目标 建立一个 lesson2 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/?q=alsotang 时,输出 alsotang 的 md5 ...
随机推荐
- yum怎么用?
一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...
- Focal Loss for Dense Object Detection 论文阅读
何凯明大佬 ICCV 2017 best student paper 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确 ...
- 编译环境搭建:Makefile
前言 长久以来,笔者一直想用一种管理工具,将所编写的测试程序.算法代码以及工程代码统一管理起来.因为有些是用Java写的有些是用C++写的.虽有想法,但却无行动.这又让我想起了昨天晚上看到一部电影里所 ...
- Effective STL 学习笔记 Item 18: 慎用 vector<bool>
vector<bool> 看起来像是一个存放布尔变量的容器,但是其实本身其实并不是一个容器,它里面存放的对象也不是布尔变量,这一点在 GCC 源码中 vector<bool> ...
- Struts 2 Tutorial
Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applicati ...
- Java深度复制List内容。
最近在工作的时候,有一个小需求,需要复制List的内容,然后会改变其中的数据,但是试了几种复制的方法,都是将原有的数据和复制后的数据都改变了,都没有达到我想要的效果. 其中涉及到了 "浅复制 ...
- hdu 4642 翻硬币
在一个n*m的棋盘上 每一个格子都有一枚硬币 1表示正面 0表示反面你每次可以选择一个硬币为正面的点,然后从该点与右下角点形成的矩阵硬币全都反向,直到一个人没有硬币可以选择则输Alice先手 列举了几 ...
- USACO 6.5 All Latin Squares
All Latin Squares A square arrangement of numbers 1 2 3 4 5 2 1 4 5 3 3 4 5 1 2 4 5 2 3 1 5 3 1 2 4 ...
- yum安装(sentos7)
之前我的yum一直出问题,我就重装了yum,这个教程是我亲自测试过,有用的. 链接:http://blog.csdn.net/iamhuanggua/article/details/60140867 ...
- synchronized锁优化
1.自旋锁和自适应自旋锁 sync在JDK1.6之前之所以被称为重量级锁,是因为对于互斥同步的性能来说,影响最大的就是阻塞的实现.挂起线程与恢复线程的操作都需要转入内核态中完成.从用户态转入内核态是比 ...