nodejs设计是一个轻量级的服务端语言。设计初衷是为了方便前端开发人员,在对后端开发不熟悉,又需要快速搭建后端代码协助前端测试的时候,nodejs的优势便体现出来了。
相比C、C++、Java等主流后端语言而言,他的入门是最简单的,也更灵活,下面便来开启他的入门之旅吧。
1 基础学习,可以参考https://www.cnblogs.com/giggle/p/5357269.html。
通过这篇文章的学习,便会安装、使用nodejs。有两种途径去使用nodejs(1控制台。2visual studio code调试工具)。
2 深度学习。
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434502419592fd80bbb0613a42118ccab9435af408fd000
学习这篇文章后,便会理解下面几个概念了。
2.1 什么是模块?
答:模块就是一个独立的js文本。模块的名字就是文件名(去掉.js
后缀),所以hello.js
文件就是名为hello
的模块。
2.2 如何把函数暴露给其他模块使用?
答:1)模块内部(hello.js)中,在尾部执行如下代码:
module.exports = greet;
2)在模块外部(main.js)中,引用:
var greet = require('./hello');
3)这样我们就可以在main.js中,使用greet函数了。
greet(1);
3 异步调用
由于node.js采用V8引擎,单线程调用,因此我们大量采用异步调用。即不等函数调用完成,继续执行下面的操作,又称为非阻塞式编程。
示例:
1)我们创建一个input.txt文本,文本内容为:
菜鸟教程官网地址:www.runoob.com
2)我们采用阻塞式编程方式,创建main.js调用这个文本文件。
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("程序执行结束!");
执行结果如下:
$ node main.js 程序执行结束! 菜鸟教程官网地址:www.runoob.com3)我们采用非阻塞式编程方式,创建main.js调用这个文本文件。
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("程序执行结束!");
执行结果如下:
$ node main.js 程序执行结束! 菜鸟教程官网地址:www.runoob.com通过非阻塞式编程的方式,我们看到node.js代码跟JavaScript代码编程思想是如此的相似。当然这个不是Node.js或者javascript独有的,而是一种风格,例如c#中的Tread,Task,java中的Thread,Runable等都是异步编程。