首页前端开发HTML三分钟快速入门NodeJS笔记分享

三分钟快速入门NodeJS笔记分享

时间2024-05-16 20:36:03发布访客分类HTML浏览25
导读: 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基...
  简单的说 Node.js 就是运行在服务端的 JavaScript。   Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。   Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。   虽然 nodejs 也是用了 JS 标准的语法(以及 ES6 的语法规范),但是肯定有一些地方和前端 JS 不一样。因此这里简单的总结一下,只说重点,不再从头说起。   前端说的 JS ,即浏览器端运行的 JS 其实是两个标准的合并。只有这俩合起来,在实际开发中才能使用,否则:例如只讲第一个标准的话,那只能写 demo 演示一下,没法实际用。   ECMA 262 标准 —— 即 JS 的基本语法,如何定义变量、变量类型、原型、作用域、异步等W3C 的 Web-API 标准 —— 包括 BOM DOM 操作、ajax 、存储等   而在 nodejs 中,第一个标准,即 ECMA 262 标准继续使用,也就是 JS 基本语法继续使用,JS 原型、异步、闭包等特性也继续保持。但是第二个标准就没法继续使用过了,例如 等,这些就都没有了,因为 nodejs 是 server 端的,根本没有浏览器的那些特性。但是 nodejs 中定义了自己在 server 端特有的 API,例如 等,这些都是 server 端才有的特性。   总结一下,就两点   继续使用 ECMA 262 标准,即 JS 的基本语法定义了 server 端特性的 API ,如 等   nodejs 使用 CommonJS 模块化规范,其中会用到 关键字。归总一下,一共有三种引用场景:   比较简单,即引用 nodejs 默认提供的核心 API 。例如:   npm 安装第三发模块时,可通过加入或,这样安装之后模块名称会保存在中。然后即可根据模块名称引用刚刚安装的模块,常见的有:   以上的时候都是输入名称,也可以输入相对路径来引用自己定义的模块。自己新建一个文件,内容为   然后新建一个文件(和同目录),内容为   ,即可看到效果。   这里有一个问题,按照 JS 语法来说,以上代码中 都是未定义的变量,应该会报错的。其实,在编译过程中,nodejs 会获取这段代码,然后进行一个函数封装,然后变成这样,问题就解决了。   这就算是一个意外收获了,不过遇到问题还是要多考虑一下原型。   这里提出"异步",并不是要讲什么新内容,而是着重提示:接下来的讲解,会用到很多异步的知识,因此异步必须要掌握全面。提醒一下,还不了解的同学尽快去补充学习:   异步和同步的区别异步和单线程event loopcallback 方式Promiseasync/await   新建,内容如下:   命令行运行,然后浏览器访问(或者命令行)即可看到结果。这一般是介绍 nodejs 入门的常用 demo ,熟悉 http 协议的同学都知道,这其实就是一个简单的 http 请求处理。   即 request 即请求内容,demo 没有代码演示,下文会补充上。例如可以获取请求的方法(如 等),可获取请求的头,如 等。   即 response 即返回内容,这是 http 请求最基本的内容。定义返回的头,包括返回状态码和头信息。定义返回的内容,最后表示 server 端处理请求结束。   PS:这里不会专门讲解 http 协议的细节,不熟悉的同学请看看本文一开始推荐的博客和书籍   上述处理 get 请求比较简单,能体现 http 协议处理的地方也有限。接下来继续了解一下 nodejs 如何处理 post 请求。   以上代码即可接收和处理 post 请求,代码中和这里,我们作为遗留问题,后面会详细重点的讲解,因为这些也是 nodejs 的重要知识,必须学会的。这里你看下代码注释,只要先知道,post 过来的内容是"一点一点"接收的,然后待接受完再做处理,这样即可。   可以命令行运行发起一个 post 请求,其中是请求的主体内容。   以上 post 请求的内容格式是 querystring 形式的,即这种,可以对代码进行改造,将这些数据结构化。   第一,代码最上面加,引入模块,nodejs 自带的。第二,对的内容做如下修改:   以上 post 请求的内容格式是 querystring 形式,一般用于网页的提交,打印的值是,即是提交的方式 —— 虽然是用模拟的。   而现在网页中数据提交大部分使用 ajax ,数据格式也改为了 JSON 格式,且看 nodejs 如何处理   可以使用发起 post 请求,并且规定格式为 JSON,内容即   之前学习其他后端语言可能没这么费劲,接触不到这么底层的 http 协议的操作,那是因为它们都已经做好了框架的封装,并不是它们真的不需要。通过 nodejs 学习一下 http 协议的具体操作也绝对是好事一桩,不要抱怨。   另外,nodejs 虽然没有提供官方的 web 框架,但是也不会傻乎乎的在项目中直接写这么底层的代码,下文会介绍 nodejs 社区中非常成熟的 web 框架,到时候这些 http 协议的操作,也都有简单的 API 可使用。   通过可以获得请求网址的完整内容,其中比较重要的就是:路由和参数。路由下文讲,先说参数的处理。   完整的 url 肯定是字符串形式的,是非结构化的,要想结构化需要引入 nodejs 提供的模块,即,然后通过进行结构化。   从结构化之后的数据中,通过即可轻松拿到 url 参数。代码示例如下:   但是得到的 url 参数还是字符串,非结构化的,不好处理。这里引用,然后即可了。完整代码如下:   使用即可看到结果。   通过可以获取 url 参数,通过可以获取路由,代码如下   可以通过来验证。   这里演示比较简单,但是路由处理却是 web server 中非常重要而且应用场景非常复杂的模块,而且路由如何设计也非常重要。其复杂性可以总结以下几点(未考虑到的欢迎补充):   不同的 method:如针对,get 方法请求和 post 方法请求,要能区分开来不同的参数规则:如表示必须有参数,表示可有可无层级关系:如和都有这个层级,要能支持两者共享流程……   (是很复杂吧?)因此,一般路由的处理,都会根据一个 web 框架选择比较成熟的路由库,如 koa-router 。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 三分钟快速入门NodeJS笔记分享
本文地址: https://pptw.com/jishu/661511.html
前端相关书籍整理分享 C#快速入门学习笔记分享

游客 回复需填写必要信息