nodejs笔记
发布日期:2021-07-26 18:44:16 浏览次数:6 分类:技术文章

本文共 3033 字,大约阅读时间需要 10 分钟。

软件选用VSCode:

选中块注释:Alt+Shift+a
选中注释:Alt+/
一、安装
根据不同平台安装相应的nodejs版本,Linux上安装特别注意python的版本不要超过3.0
其他安装内容自行搜索或对照安装教程。
二、npm使用
1、下载来自npm网站上的来自第三方包使用
2、下载安装别人编写好的命令行程序本地使用
3、上传自己包到npm
三、npm命令安装模块
npm install
npm install -g (global全局安装)
四、npm list -g查看所有全局安装模块
npm list grunt查看模块版本号
五、回调函数
node的所有API都支持回调
回调是怎么一回事:比如一遍读取文件内容一遍执行其他操作 ,读取文件中的内容作为参数返回,整个过程看上去是异步的,在读文件的同时执行其他的代码操作就不会有阻塞和等待读文件的这个过程。优点是可以处理大量并发的事件。
function foo1(name, age, callback){ }
function foo2(value, callback1, callback2){ }
新建文件input.txt,放入要显示的内容,
main.js

var fs = require("fs");//var data = fs.readFileSync('input.txt');//console.log(data.toString());//console.log("阻塞代码END!");data = 12345fs.readFile('input.txt', function (err,data) {    if(err) return console.error(err);    console.log(data.toString());});console.log(data.toString());console.log("非阻塞执行结束!");

运行结果:

PS C:\Users\Administrator\Desktop\node> node .\main.js12345非阻塞执行结束!少侠好走位博客:https://blog.csdn.net/qq_41877422

六、事件循环

node.js基本所有的事件机制都是用设计模式中的观察者模式实现的;
node.js单线程类似进入一个while的事件循环,直到没有事件观察者退出 ,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。
七、BUFFER
JavaScript语言只有字符串数据类型,没有二进制,
处理TCP流文件流时需要二进制,可以定义一个Buffer类,该类用来创建一个专门的存放二进制数据的缓冲区。
八、Node.js模块系统
让Node.js文件相互调用
Node.js提供exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块的接口。
只是想吧一个对象封装到模块中时:

新建文件:xxx.jsfunction Hello(){    var name;    this.setName = function(thyName){        name = thyName;    };    this.sayHello = function(){        console.log('Hello '+ name);    };    this.world = function(){        console.log('Hello world');    }};module.exports = Hello;新建文件:main.jsvar Hello = require('./xxx');hello = new Hello();hello.setName('Boy');hello.sayHello();hello.world();

要对外暴露属性和方法,就用exports

要暴露对象就用module.exports
九、Node.js常用工具
util.callbackify(original)将async异步函数(或者一个返回值为promise的函数)转换成遵循异常优先的回调风格。
util.inherits(constructor,superConstructor)是一个实现对相间原型继承的函数。
原型就是我们创建的每个函数都有一个 prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法。
util.inspect(object,[showHidden],[depth],[colors])将任意对象转换成字符串的方法 ,通常用于调试和错误输出。
util.isArray(object)判断参数是否为数组返回布尔值。
util.isRegExp(object)判断参数是否为正则表达式返回布尔值。
util.isDate(object)判断参数是否为日期返回布尔值。
十、Node.js的GET/POST请求
应用场景:服务器与浏览器打交道 ,如表单提交等
GET 请求是嵌入到URL完整路径中的,包括?后面的部分,可以手动解析后面的内容作为GET请求的参数。使用url模块中的parse函数解析。
POST请求的内容全部都在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作,比如上传文件,很多时候并不需要理会请求体的内容,恶意的POST请求会大大消耗服务器的资源。node.js默认不会解析请求体,需要时手动解析。
十一、Node.js常见模块
Os模块var os = require(‘os’);提供了基本的系统操作函数。CPU信息,操作系统,时间等。
Path模块var path = require(‘path’);提供处理文件路径的工具。绝对、相对路径等
Net模块var net = require(‘net’);提供网络通信工具。TCP服务器,端口,检测IPv4,IPv6等
DNS模块var dns = require(“dns”);解析域名。查询IPv4,IPv6等。
十二、Web模块
网站服务器,它只需要支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。
十三、Express框架
Express是一个简洁而灵活的node.js的web应用框架,帮助你创建web应用,提供http工具。
可快速搭建一个完整网站 。
静态文件Express 提供了内置的中间件 express.static 来设置静态文件如:图片, CSS, JavaScript 等。
十四、RESTful API
REST表述性状态传递的一种软件架构分格
RESTful Web Services 低耦合,自包含,基于可编程的web应用,可以使用开放的XML(一种用于标记电子文件使其具有结构性的标记语言)标准。
REST是设计风格,而不是标准。
十五、node.js连接MySQL
安装驱动,cnpm install mysql

资料来源:https://www.runoob.com/nodejs/nodejs-mongodb.html

转载地址:https://blog.csdn.net/qq_41877422/article/details/103509995 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:VScode如何在浏览器中打开html文件
下一篇:wifi模块配置ap模式下出现的问题

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月12日 07时44分38秒