当前位置: 首页 > 后端技术 > Node.js

学习Node.js,从这里开始!

时间:2023-04-03 17:07:02 Node.js

1。什么是Node.js?Node.js是一个封装了操作系统API的可执行程序,同时也对外提供了自己的API,并采用JavaScript作为其API标准。也就是说,应用软件可以使用JavaScript直接与操作系统进行交互。1、独特优势:使用GoogleChromeV8JavaScript引擎,前端开发者也可以使用JS编写后端代码;它采用单线程、异步I/O(非阻塞范式)运行,没有并发线程的负担,使得单个服务器也可以轻松处理数千个并发。2.Node.js和Nginx的区别。Nginx只是一个负责通信的应用程序。只需修改配置文件即可搭建高性能的http服务器;Node.js的HTTPAPI也可以搭建http服务器;Node.js可以完成Nginx的所有工作,但是需要编写大量的代码,做大量的性能优化。如果你只需要http服务,那么Nginx是一个很好的解决方案。比如用Nginx部署一个网站。如果你需要开发一个web应用,Node.js是一个很好的解决方案,因为Node.js不仅有HTTPAPI,还有Buffer、processes、Console等很多API,所有web应用的需求都可以支持.例如,开发企业级网站。2.安装Node.js详细安装步骤,看这里!3.使用Node.js启动一个简单的web项目按照你熟悉的方式创建一个app.js文件,并将以下代码复制到该文件中:consthttp=require('http');const主机名='127.0.0.1';常量端口=3000;constserver=http.createServer((req,res)=>{res.statusCode=200;res.setHeader('Content-Type','text/plain');res.end('HelloWorld');});server.listen(port,hostname,()=>{console.log(`Serverrunningathttp://${hostname}:${port}/`);});Startserver#打开终端执行以下代码cdnodeapp.js访问服务#使用浏览器访问以下链接http://localhost:30004.Node.js内置标准库以上代码consthttp=require('http')是导入Node.js内置的标准库。更多内容,请看这里!五、代码复用1、一个重要的概念模块(module):把实现某个功能的代码放到一个.js文件中,需要的时候再导入,避免写重复代码。这个.js文件被称为一个模块(module)。打包:多个.js文件放在一起形成一个包。npm:将此包分享到平台上,供其他人下载使用。这个平台是npm的一部分,npm也有管理包的功能,比如下载安装包。由于全球1100万开发者的贡献,现在有超过100万个可用的软件包。通过npm将包安装到项目中,大大缩短了项目开发周期。安装使用,看这里!yarn:在使用npm的过程中,发现了一些不足,yarn平台的出现就是为了解决这些不足。安装使用,看这里!2.Node.js模块在Node.js出现之前,js文件只有一个官方标准:ECMAScript。所有的浏览器都是按照这个标准来解析js文件的。Node.js有自己的一套js标准,称为CommonJS。当然,Node.js也完全兼容ECMAScript标准的js代码。那么问题来了,上面例子中的nodeapp.js,应该按照什么标准来解析执行哪个app.js文件呢?详情请看这里!3、模块的全局变量Node.js在加载每个模块的时候,会传递几个参数给模块,告诉它加载到哪里?详情请看这里!6.package.jsonpackage.json可以理解为项目描述文件。文件内部是一个json对象,记录了不同的属性,供Node.js访问。比如Node.js会读取package.json文件中的type属性来决定使用什么Standard来加载和执行js文件。npm发布的包也使用package.json来表示包的作者、名称等信息。详情请看这里!7、其他框架Node.js确实提供了丰富的基础API,但是在实际使用过程中还是需要编写大量的代码,所以对其常用的功能进行了进一步的封装,形成了很多更加方便的框架。Express:一个简单灵活的Web应用框架,可以快速构建一个功能齐全的网站。更多内容,请看这里!koa:基于Express,但比Express更小、更简单、更易于使用。Egg.js:基于koa,提供更便捷的企业级web应用开发方式。Gatsby:开发运行速度极快的静态网站。非常适合新闻、电子商务等内容型网站,可以整合不同来源的数据。更多内容,请看这里!Strapi:一个开源的CMS,它实现了数据存储和第三方访问数据的API,无需编写代码。支持Markdown数据格式。使用strapi作为数据源配合Gatsby生成静态网站是一个非常好的解决方案。AdonisJS:一个基于TypeScript的全功能框架,高度关注开发人员的人体工程学、稳定性和信心。Adonis是最快的Node.jsWeb框架之一。Fastify:一个高度专注于以最少的开销和强大的插件架构提供最佳开发人员体验的Web框架。Fastify是最快的Node.jsWeb框架之一。FeatherJS:Feathers是一个轻量级的Web框架,用于使用JavaScript或TypeScript创建实时应用程序和RESTAPI。在几分钟内构建原型并在几天内构建可用于生产的应用程序。hapi:一个用于构建应用程序和服务的丰富框架,使开发人员能够专注于编写可重用的应用程序逻辑,而不是花时间构建基础设施。Loopback.io:使构建现代应用程序变得容易需要复杂的集成。流星:一个非常强大的全栈框架,通过同构方法为您提供支持,以使用JavaScri构建应用程序pt,在客户端和服务器上共享代码。曾经是提供一切的现成工具,现在与前端库React、Vue和Angular集成。也可用于创建移动应用程序。Micro:它提供了一个非常轻量级的服务器来创建异步HTTP微服务。NestJS:一个基于TypeScript的渐进式Node.js框架,用于构建企业级高效、可靠和可扩展的服务器端应用程序。Next.js:React框架,可为您提供最佳开发人员体验,以及生产所需的所有功能:混合静态和服务器渲染、TypeScript支持、智能捆绑、路由预取等。Nx:全栈monorepo工具包使用NestJS、Express、React、Angular等进行开发!Nx有助于将您的开发从一个团队构建一个应用程序扩展到多个团队协作开发多个应用程序!Sapper:Sapper是一个用于构建各种规模的Web应用程序的框架,具有bea丰富的开发经验和灵活的基于文件系统的路由。提供SSR等等!Socket.io:用于构建网络应用程序的实时通信引擎。8.学习Node.js的参考文档,从这里开始!