个人学习笔记(在各个大佬博客的指导下)
基础简单知识~
1、模块
模块是node.js应用程序基本组成部分,模块和文件是一 一对应的关系,一个node.js文件就是一个模块,加载一个模块就是加载对应的一个模块文件。
require的参数有两种,一种是文件路径,基于当前脚本所在目录,像require(’./tools’)这样的;另一种是已安装的模块,可以直接引用,比如加载核心模块http,代码为require(‘http’)
举个例子,用test文件引用外部模块tools(自定义模块)
test文件:
// 这是test文件
const tool = require('./tools');
console.log(tool.sum(['hello', 'world']));
console.log(tool.add(4,8));
tools文件:
//这是tools文件
var sum = function (string) {
return string;
}
var add = function(m,n){
return `m + n = ${m+n}`;
}
module.exports.sum = sum;
module.exports.add = add;
执行结果:
备忘录:不建议同时使用exports和module.exports向外暴露属性或方法,因为exports仅仅是module.exports的一个引用
2、回调函数
在某乎看到了一个关于回调函数的理解,我只想说:妙啊啊啊。膜拜大佬orz
node.js异步编程的直接体现就是回调。比如文件的读取就是一个异步操作,在文件读取完成后,将文件内容作为回调函数的参数返回,这样代码执行时就没有阻塞或者等待文件I/O操作。
关于异步读取文件的,推荐看看一个巨佬的这个博文http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
一个简单的回调函数:
function callback(name,phone){
name(phone);
}
function bai(phone){
console.log(phone);
}
callback(bai, '20200528');
扩展小知识:
node的运行环境是单线程的,如果出现没有捕获的异常被抛出,就会引起整个进程的崩溃。一般来说,node捕获异常的几种常见方式如下:
1、try······catch结构,最常见的捕获异常方式,但无法处理异步执行机制
2、回调函数,将错误对象传递给回调函数,由回调函数发出错误信息
3、通过EventEmitter的接口发出一个error事件
4、通过promise方式
参考博客:https://javascript.ruanyifeng.com/nodejs/basic.html#toc6
如有不足,欢迎指出
(我只是一个小菜鸟,需要大佬们的指点