node.js 入门 (1)

  • 一、node.js 是什么?
  • 二、node.js 有那些特点?
  • 三、node.js 安装种配置
    • 安装方式 1:安装单个 node 版本(不推荐)
    • 安装方式 2:安装多个 node 版本(推荐)
  • 四、Node.js REPL(交互式解释器)
  • 五、Demo
    • demo1:hello world(helloWorld.js)
    • demo2:文件写入(wfs.js)
    • demo3:单线程node执行顺序(singleton。js)
    • demo4 读文件(rfs.js)
    • demo5 http服务(http.js)
  • 六、干货

一、node.js 是什么?

  1. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
  2. Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

二、node.js 有那些特点?

  1. 事件驱动:当事件被触发时,执行传递过去的回调函数
  2. 非阻塞式 I/O 的模型:当执行I/O操作时,不会阻塞线程
  3. 单线程

三、node.js 安装种配置

安装方式 1:安装单个 node 版本(不推荐)

  1. 下载地址 https://nodejs.org
  2. 官网术语解释
    LTS 版本:Long-term Support版本,长期支持版,即稳定版。
    Current Latest Features版本,当前最新的特性,即最新版本

安装方式 2:安装多个 node 版本(推荐)

  1. 安装nvm(Node Version Manager)
    下载地址:https://github.com/coreybutler/nvm-windows/releases
    选择nvm-setup.zip,下载后直接安装。
  2. 验证安装是否成功:nvm -version
  3. 修改国内下载源,默认通过github下载,在线安装经常失败(可选)
    D:\develop\nvm\settings.txt
root: D:\develop\nvm
path: D:\develop\nodejs#新增
arch: 64
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
  1. 安装node :nvm install 10.15.3 (预计下载5分钟)
  2. 使用node:nvm use 10.15.3
  3. 常用命令
    nvm version 查看版本
    nvm install latest
    nvm install 版本号
    nvm uninstall 版本号
    nvm list
    nvm use 版本号

四、Node.js REPL(交互式解释器)

  1. Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。

  2. Node 自带了交互式解释器,可以执行以下任务:
    读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
    执行 - 执行输入的数据结构
    打印 - 输出结果
    循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。

ye:Node REPL 主要用于调试 Javascript 代码。

  1. 简单的使用
λ node
> 5+8
13
> x=5
5
> y=3
3
> x+y
8
> console.log("ye90")
ye90
undefined
>

五、Demo

demo1:hello world(helloWorld.js)

var m=3;
var y=5;function add(x,y){return x+y;
}console.log('计算的结果:',add(m,y));
console.log('hello world!');

运行结果:

demo2:文件写入(wfs.js)

//1.加载文件操作模块,fs模块
var fs = require('fs');//fs.writeFile(file, data[, options], callback)
var msg= 'Hello Node.js';
fs.writeFile('message.txt', msg,'utf8', (err) => {if (err){throw err;} //ye: err===null,表示写入文件成功console.log('The file has been saved!');
});


ye:
1、第三个入参utf8可不写

demo3:单线程node执行顺序(singleton。js)

console.log('ye1');setTimeout(function(){console.log('ye5');
},3000);console.log('ye2');setTimeout(function(){console.log('ye4');
},0);console.log('ye3');

ye:
1、在线动画演示 http://latentflip.com/loupe

demo4 读文件(rfs.js)

var fs= require('fs');
//加载 path 模块
var path = require('path');
//使用join拼接,主要解决兼容,如苹果电脑不支持'\\'这种写法
var filename = path.join(__dirname,'./message.txt');
//fs.readFile(path[, options], callback)
fs.readFile(filename,function(err,data){if (err) {throw err;}// data是一个buffer对象,需要转成字符串console.log(data.toString('utf8'));// 默认是utf8,所以可不写console.log(data.toString());
});

demo5 http服务(http.js)

var http = require('http')
//创建
var server = http.createServer()
//监听
server.on('request',function(req,res){res.write('ye')res.end()
})
//启动
server.listen(8080,function(){console.log('已启动8080端口!')
})

六、干货

1、异步操作无法通过try-catch来捕获异常,要通过判断error来判断是否出错
2、同步操作可以通过try-catch 来捕获异常
3、不要用 fs.exists(path, callback),exists已弃用,可以使用fs.stat() or fs.access() 替代。也可以直接判断error
4、__dirname:当前被执行的js的目录
5、__filename:当前被执行的js文件名

node.js 入门 (1)相关推荐

  1. node.js入门 - 9.api:http

    node一个重要任务是用来创建web服务,接下来我们就学习与此相关的一个重要的api -- http.我们使用http.createServer()创建一个http服务的实例,用来处理来自客户的请求. ...

  2. 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

    最近想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序,所以需要在本地搭建Node.js Web的开发测试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴 ...

  3. js读取http chunk流_极简 Node.js入门 教程双工流

    点击上方蓝字关注我们 小编提示: 本文是由 ICBU 的谦行小哥哥出品,我们会持续发出极简 Node.js入门 教程,敬请期待哦,文中有比较多的演示代码建议横屏阅读 双工流就是同时实现了 Readab ...

  4. Node.js 入门知识点总结

    Noed.js 快速入门 前言 node.js 入门 环境配置 hello node.js node.js 获取参数 node.js 模块系统 node.js 路由 node.js 文件操作 使用 n ...

  5. node.js入门 - 7.异常处理与多进程开发

    node.js入门 - 7.异常处理与多进程开发 参考文章: (1)node.js入门 - 7.异常处理与多进程开发 (2)https://www.cnblogs.com/softlover/arch ...

  6. Node.js 入门教程 23 使用 npm 的语义版本控制 24 卸载 npm 软件包 25 npm 全局或本地的软件包

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 23 使用 npm 的语义版本控制 24 ...

  7. Node.js 入门手册:那些最流行的 Web 开发框架

    这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...

  8. Node.js 入门教程 6 V8 JavaScript 引擎

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 6 V8 JavaScript 引擎 6 ...

  9. 让我们一起学习《Node.js入门》一书吧!

    Node.js入门 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面以及上传文件. 里面对一些知识的讲解,让你略窥Node.js的门径.最好一段代码一段代码的写下来,我的习惯是手里拿 ...

最新文章

  1. python和java一样吗-Python与Java的区别与优劣?
  2. 羊皮卷的故事-第十章-羊皮卷之三
  3. XeLaTeX插入GB/T 7714-2005规范的参考文献方法
  4. linux-shell面试题 之二
  5. [转载] 一致性哈希
  6. Django Web在Apache上的部署
  7. python和java哪个有用_python和java哪个好
  8. JAVA的日期与毫秒的相互转换
  9. Python替换多个tomcat端口号
  10. 计算机辅助设计 Photoshop 教案,计算机辅助设计①Photoshop学习领域课程标准.doc
  11. matlab u怎么求均方差,Matlab求方差,均值,均方差,協方差的函數
  12. A4988驱动步进电机教学
  13. 图解域名解析DNS过程
  14. P2433 【深基1-2】小学数学 N 合一
  15. ubuntu16.04Django环境的搭建
  16. svchost.exe占用cpu过高怎么处理(原因及解决办法)
  17. 基于python的掺杂介质六面体nastran网格生成脚本
  18. English Grammar(二)
  19. 微信小程序之评分页面
  20. android 信息(mms)的故事(八)-- 彩信的解析

热门文章

  1. Opencv实战——图像拼接
  2. OSPF Stub区域与NSSA区域
  3. 三个让你升级到SOLIDWORKS 2020的理由
  4. OSChina 周二乱弹 —— 约会奇才
  5. 【毕设项目推荐】学长做过的那些有趣的毕设项目 - 毕设项目分享 (单片机 嵌入式 物联网 stm32)
  6. Tradex接口系统怎么设计图像的颜色?
  7. 浅谈软件工程与云计算
  8. 金山pdf批注更改批注作者_Linux上的PDF批注工具
  9. 如何写出完美的PLC程序?
  10. win10装linux虚拟机contos,利用win10自带虚拟机hyper-v安装centos7方法详解