Node.js入门基础—day01

个人名片:
😊作者简介:一名大二在校生
🤡 个人主页:坠入暮云间x
🐼
座右铭:给自己一个梦想,给世界一个惊喜。
🎅**学习目标: 坚持每一次的学习打卡

文章目录

  • 初识node.js
    • 什么是node.js?
    • 如何查看node.js是否安装成功?
      • 终端中的快捷键:
      • Node.js 应用是由哪几部分组成的?
      • Node.js的优缺点
      • JavaScript与Node.js的区别?
    • 创建Node.js
      • Node.js 应用是由哪几部分组成的?
        • 一、使用 require 指令来加载和引入模块
        • 二、创建服务器
    • 模块化编程
      • 什么是模块化?
      • 为什么模块化?
      • 非模块化的弊端?
      • 模块化开发的优点?
      • Node.js的核心模块
      • Node.js全局函数
      • Node.js的全局变量console
      • Node.js的模块加载机制

初识node.js

什么是node.js?

Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。

Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。

注意:
1.浏览器是JavaScript的前端运行环境
2.Node.js是JavaScript的后端运行环境
3.Node.js是无法调用DOM和BOM等浏览器内置API

如何查看node.js是否安装成功?

1.打开命令行工具,在里面输入node -Vnpm -v,如下图所示,安装成功则显示版本号,如果报错则说明没有安装成功,可以官网node.js中重新下载
在这里插入图片描述

终端中的快捷键:

● 使用↑键,可以快速定位到上一次执行的命令
● 使用tab键,能够快速补全路径
● 使用esc键,能够快速清空当前已输入的命令
● 输入cls命令,可以清空终端
● 输入ctrl+c命令,可以终止终端

Node.js 应用是由哪几部分组成的?

  1. require 指令:在 Node.js 中,使用 require 指令来加载和引入模块,引入的模块可以是内置模块,也可以是第三方模块或自定义模块。

  2. **创建服务器:**服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。

  3. 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

Node.js的优缺点

优点:
1、Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。
2、Node.可以让开发人员更好的组织代码,提升复用性。适合处理I/O密集型(文件与数据库)应用。
3、基于Javascript,普及门槛低,JavaScript相对其他的企业级编程语言来说也简单一些,这样前端程序员就可以很快上手利用Node做后端的设计。
缺点
1、不适合计算密集型应用;
2、不适合大内存的应用;
3、不适合大量同步的应用。

浏览器为例,浏览器是多进程,JS 引擎单线程

JavaScript与Node.js的区别?

在这里插入图片描述在这里插入图片描述

创建Node.js

mkdir node
cd node
npm init -y

Node.js 应用是由哪几部分组成的?

  1. require 指令:在 Node.js 中,使用 require 指令来加载和引入模块,引入的模块可以是内置模块,也可以是第三方模块或自定义模块。

  2. 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。

  3. 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

一、使用 require 指令来加载和引入模块

语法:const module = require('module-name');

module-name:他是一个文件路径(相对或绝对路径),也可以是一个模块名称,如果是一个模块名称,Node.js 会自动从 node_modules 目录中查找该模块。

require:指令会返回被加载的模块的导出对象,可以通过该对象来访问模块中定义的属性和方法,如果模块中有多个导出对象,则可以使用解构赋值的方式来获取它们。

require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http

语法:var http = require("http");

二、创建服务器

http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。
request:接收数据
response:响应数据
新建server.js 文件输入如下代码

var http = require('http');http.createServer(function (request, response) {// 发送 HTTP 头部 // HTTP 状态值: 200 : OK// 内容类型: text/plainresponse.writeHead(200, {'Content-Type': 'text/plain'});// 发送响应数据 "Hello World"response.end('Hello World\n');
}).listen(8888);// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

注意:一定要在当前目录下打开终端 并输入命令 node+ 你创建的文件名 才可以运行成功

在这里插入图片描述在这里插入图片描述

模块化编程

什么是模块化?

根据功能或业务将一个大程序拆分成互相依赖的小文件,再用简单的方式拼装起来

为什么模块化?

无模块化问题所有script 标签必须保证顺序正确,否则会依赖报错
全局变量存在命名冲突,占用内存无法被回收
IIFE/namespace 会导致代码可读性低等诸多问题

非模块化的弊端?

  1. 命名冲突
  2. 文件依赖
    在这里插入图片描述

模块化开发的优点?

1.提高了代码的重用性和可维护性
2.避免了命名冲突
3.Node.js 支持模块的热替换(Hot Module Replacement),这意味着在运行时可以替换或更新模块,而无需重启整个应用。
4.提供了更好的封装性

Node.js的核心模块

在这里插入图片描述

Node.js全局函数

在这里插入图片描述

Node.js的全局变量console

在这里插入图片描述

Node.js的模块加载机制

Node.js会依次在内置模块、全局模块和当前模块下查找引入的内容。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络工程师笔记14

VLAN原理与配置 VLAN 的功能 划分广播域,隔离广播域 VLAN的应用划分 VLAN配置命令

RTX4090上运行Cuda10.1报错:ValueError: Unknown CUDA arch (8.9) or GPU not supported

原因是cuda(我这里是cuda10.1,改为支持7.5)的版本不支持当前算力(8.9) 参考compute capability的官方表格:https://developer.nvidia.com/cuda-gpus 修改算力过程: sudo vim ~/.bashrc # 在配置文件中添加如下一行 exp…

微信怎么定时群发消息,一键群发5000好友?

对微信运营的人来说,群发是一件很有必要的事情,但是用微信群发的话,微信自带的群发助手只能发送文字和图片消息,一次只能选200个人,而且也无法定时群发,有很多不方便的地方,这个时候&#xff0c…

简单的思考(一):MATLAB实现心形线

今天刷B站的时候看见了: 于是想着自己能不能也做出来 clc;clear; % 定义x的范围 x -2:0.01:2;% 初始化图形 figure; set(gcf,position,[0,0,800,600],color,w); h1 plot(x,abs(x).^(2/3) (0.9*sqrt((3.3-x.^2))).*sin(0.1*pi*x),r,LineWidth,3); hold on xlim(…

Flutter 开发中踩坑笔记总汇

Flutter 踩坑笔记总汇 本篇主要是收集汇总开发过程中遇到的小困惑,都是些比较常见的问题。后续开发中遇到,也会持续更新在这里。 1、Flutter Packages upgrade后任务进入阻塞状态 问题:无法更新下载插件库。 解决:配置flutter官…

力扣(103、236、104)

103. 二叉树的锯齿形层序遍历 题目大意:将原先的层次遍历改为蛇形遍历,那么我们需要在102. 二叉树的层序遍历的基础上进行改进,首先蛇形走位(先从左往右,再从右往左进行下一层遍历,以此类推,层…

k8s部署InfluxDB

(作者:陈玓玏) 1. 拉取镜像 docker pull influxdb #拉取镜像 docker run -d influxdb:latest #后台运行容器 docker exec -it 89b /bin/bash #进入容器,89b是容器ID的前三位 cd /usr/bin #进入容器后,进入此文件夹…

SEO是什么?网站为什么要做SEO?#川圣SEO#蜘蛛池

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? SEO,即搜索引擎优化,是一种通过了解和利用搜索引擎的运作规则来提高网站在搜索结果中…

Flink技术简介与入门实践

架构简介 Flink 是一个分布式流处理和批处理计算框架,具有高性能、容错性和灵活性。下面是 Flink 的架构概述: JobManager:JobManager 是 Flink 集群的主节点,负责接收和处理用户提交的作业。JobManager 的主要职责包括&#xff1…

Tomacat下载并且手动自动部署Web项目

Tomacat下载并且手动自动部署Web项目 Tomcat的简介Tomcat的作用Tomcat的下载Tomcat 部署1、环境准备2、手动部署项目3、自动部署项目(IDEA) ⭐ 前言 ⭐ 本篇文章主要介绍 Tomacat下载部署Web项目的详细使用以及部分理论知识 Tomcat的简介 Tomcat 服务…

硬盘分区怎么恢复数据 硬盘分区如何恢复原来的数据

硬盘分区是我们在使用电脑时经常会遇到的问题,而且很多人都会因为误操作或者其他原因导致硬盘分区数据丢失。这时候,我们就需要知道如何恢复硬盘分区的数据了。 首先,我们需要知道硬盘分区数据丢失的原因。一般来说,硬盘分区数据丢…

setTimeout+Promise+Async输出顺序?

注明:本文不涉及Nodejs执行机制 同步 && 异步 什么是异步,什么是同步,我不多说,我就通过小故事来讲讲吧。 同步:你打电话去书店订书,老板说我查查,你不挂电话在等待,老板把…

Memcached 数据库介绍

一 Memcached 介绍 (一)Memcached 简单介绍 弊端 不能持久化 (不支持存在硬盘里) Memcached 只支持能序列化的数据类型,不支持持久化,基于Key-Value的内存缓存系统 memcached 虽然没有像redis所具备的…

宏任务及微任务

js有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件,以及执行队列中的子任务。js是单线程的(某一刻只能执行一行代码),为了让耗时带啊不阻塞其他代码运行,设计了事件循环模型。 事件循环…

学生时期学习资源同步-1 第一学期结业考试题1

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载

D-Star 寻路算法

D-Star 寻路算法 下面简写 D-Star 为 D* D算法:D 算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially-Known Environments”中介绍。它是一种启发式的路径搜索算法, 适合面对周围环境未知或者…

把 Windows 装进 Docker 容器里

本篇文章聊聊如何在 Docker 里运行 Windows 操作系统, Windows in Docker Container(WinD)。 写在前面 我日常使用 macOS 和 Ubuntu 来学习和工作,但是时不时会有 Windows 使用的场景,不论是运行某个指定的软件&…

QThread常用相关函数、线程启动方式

一、常用相关函数 可以将常用的函数按照功能进行以下分类: 线程启动 void start() 调用后会执行run()函数,但在run()函数执行前会发射信号started(),操作系统将根据优先级参数调度线程。如果线程已经在运行,那么这个函数什么也不…

杂谈-关于如何在博客或者技术站上提问才能获得作者更高的回复意愿和交流热情

如何提问一个有效的问题 😆 首先为什么写这篇文章,由于在研究生的学习和工作过程中由于个人技术知识稍微丰富一点点也比较好学,经常会被提问或者自己提问-在博客,GitHub上,Stakflow上等等-也在和学弟学妹交流的过程中听…

C#调用Halcon出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException

一、现象 在C#中调用Halcon,出现异常提示:尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException 二、原因 多个线程同时访问Halcon中的某个公共变量,导致程序报错 三、测试 3.1 Halcon代码 其中tsp_width…