服务端js Node.js

Node.js 入门:运行在服务端的 JavaScript 简介 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 简单的说 Node.js 就是运行在服务端的 JavaScript。 详细学习: 菜鸟教程 一、快速入门 Hello World 新建js文件 helloworld.js console.log("hello world!"); 终端执行文件(需在文件所. 阅读详情

开始

Node.js是服务端的javascrip

Node.js特点

事件驱动:执行一个事件回调函数中途可以转而执行其他事件,然后返回原事件;
非阻塞I/O:访问数据库代码后可立即执行后面代码,把结果放在回调函数中;
单线程:减少内存开销,但错误出现整个应用会推出。

Node.js适用场景

  1. 大量并发简单应用程序I/O
  2. 与Web socket配合开发长连接实时交互应用程序 如:考试系统 博客 聊天室

Node.js简单使用

NPM

npm是捆在Node.js安装的包管理工具

Node.js REPL

Node.js REPL 是shell或终端

  • 启动REPL
node.js;
  • 下划线变量
    _下划线变量表示个表达式的运算结果

  • 退出
    Ctrl+C:退出此REPL行
    Ctrl+D = 连续两次Ctrl+C退出到普通命令行

  • 运行js文件

node xxx.js

Node.js 全局变量

  • __filename变量
console.log(__filename)    //返回路径
  • __dirname变量
console.log(__dirname)        //返回目录路径
  • setTimeout(函数,毫秒) clearsetTimeout(计时器)
setTimeout(hanshu,3000)   //三秒后执行hanshu事件一次
t = setTimeout(hanshu,3000);
clearTimeout(t);       //清除计时器
  • setInterval(函数,毫秒) 反复不停执行函数 clearInterval(计时器)

创建第一个应用

var pp = require("http");    //加载http模块
pp
	.createServer(function(request,response){
		response.writeHead(200,{"Content-Type":"text/plain"}); //发送头部 状态值200 内容
		response.end("Hello world\n");    //发送响应数据 ”Hello World"
	})
	.listen(8080)
node 文件名.js       //启动web服务

Node.js包和模块

package.json文件

包用来管理多个模块及其依赖关系,根目录必须有描述包的package.json文件,里面写名字版本号说明,搜索用的关键字等
package.json可以手写或者

npm init       //生成package.json文件
npm init --yes  //跳过问题生成默认的package.json文件

有package.json文件我们就能通过命令安装依赖

npm install     //安装所有依赖

包操作

安装包

npm install xxx包名

更新包

npm update xxx包名

删除包

npm uninstall xxx包名

包的名字全球唯一!

模块的使用

创建

function hanshu(){
	.....;
}        //创建函数
module.exports.hanshu = hanshu;     //提供导出

访问

var x = require("./js模块名");    //引入
x.hanshu();

Node.js函数

function hanshu(someFunction,value){
	someFunction(value);
	}              // 函数可以作为变量在另一个函数中传递
hanshu(someFunction,value1)       //使用实例

匿名函数

function(){
}

箭头函数(ES6新增)

可代替匿名函数,不可用在构造函数

(参数1,参数2...) =>{return表达式}  
 (参数1,参数2...)=>表达式单一
 (单一参数)=>{return..}
  单一参数=>{return..}
 ()=>{return..}

Node.js异步编程

非阻塞代码就是
程序开始加载文件后 然后直接去执行下面的代码了

Node.js事件

EvenEmitter

在模块events的方法

events.EventEmitter( )

添加监听器

emitter.on === emitter.addListener 完全一样

emitter.on("事件“,function(){
	console.log("已连接");
	});             //为事件添加计时器

把监听器置顶(这里用箭头函数代替了上面的匿名函数)

emitter.prependListener("事件",()=>console.log("随便是啥"));

当然也可以把回调函数赋值给变量

emitter.prependListener("事件",变量)

一次性监听器

emitter.once("事件”,.....)   //只能触发一次就注销
emitter.prependOneceListener()   //置顶

移除监听器

emitter.off === emtter.removeListener

emitter.off("事件",...)   //一次只能移除一个
emitter.removeAllListeners()   //All
emitter.removeAllListeners([事件name])
//指定名字的事件全部监听器

一旦事件触发,所有绑定的 监听器执行完才会执行移除事件

监听器数量控制

监听器最大绑定数
防止内存泄露,超过10个监听器就会警告

emitter.setMaxListeners(n)      //允许监听器个数
emitter.setMaxListeners(0或infinity) //不限制个数

查看绑定监视器个数

emitter.listenerCount(eventname)  //查看绑定监视器数

error事件

必须为error设置监听器,否则抛出相关信息会退出

var events = require("events");            //导入模块
var emitter = new events.EventEmitter();   //emitter对象
emitter.on("error",(err)=>{
	console.error("错误信息");    //设置监听器
});
emitter.emit("error");    //  $错误信息

http模块和fs模块

http模块

var http = require("http");   //  加载http模块
http
	.createServer(function(request,response){
		response.writeHead(200,{"Content-Type":"text/plain"});
		//发送http头   状态值200 内容类型:text/plain
		response.end("Hello World\n");
		})     //发送响应数据
		.listen(8080);
  • request请求对象 每次有请求都会触发
  1. request.url获 取请求路径,端口号之后的/开头的那一部分
  2. request.socket.localAddress 获取ip地址
  3. request.socket.remotePort 获取源端口


  • response响应对象 常用方法

1.向请求发送响应头

response.writeHead(
statusCode[,statusMessage][,headers])//只能调用一次
必须在end前调用

statusCode:状态码 200表示正常,404表示没找到 statusMessage:可选的 显示给用户的信息
headers:响应头 设置Content-Type 网页编码和文件类型 如: text/html:HTML格式
text/plain:纯文本格式



2.向用户发送响应数据 (文本或html代码)

 response.write()   //可使用多次 

最后用response.end()结束 不如客户端会一直等待


3.表示结束
response.end()   //每个响应都要结束

fs模块

导入require("fs")
异步打开文件fs.open(path,flags[,mode],callback);

  • mode:设置文件权限 默认0o666可读写
  • callback回调函数 callback(err,fd)
flags参数功能
”a“创建文件或追加内容
“r+”读取和追加
”w+“创建或截断 追加

异步关闭文件fs.close(fd,callback);

  • fd:fs.open()返回的文件描述符
    异步读取文件fs.read(fd,buffer,offset,length,position,callback);
  • fd:通过fs.open()返回的文件描述符 buffer:数据写入的缓冲区
  • offset:缓冲区开始写入的偏移量 一般为0
  • length:指定读取的字节书 整数
  • position:文件开始读取的位置, position为null则从当前位置读取,并更新文件位置
  • callback:回调函数 (err,bytesRead,buffer)

异步写入文件 fs.write(fd,buffer,offset,length,position,callback)

  • offset:指定要写入的buffer部分

  • position:写入开头偏移量 typeof position !== 'number' 时从当前位置写入数据

异步获取文件信息 fs.stat(path,callback)
异步截取文件 fs.ftruncate(fd[,len],callback);

  • len:文件内容截取长度,默认为0

异步删除文件 fs.unlink(path,callback);
修改文件名 fs.rename(oldPath,newPath,callback);
异步创建目录 fs.mkdir(path[,options],callback);
options:
recursive是否以递归方式创建目录 默认false
mode设置目录权限 默认0o777
异步读取目录 fs.readdir(path[,options],callback);
options:encoding 默认 ‘utf8’
withFileTypes 默认false
异步删除目录 fs.rmdr(path,callback);

Express框架

Express是Node.js的 Web框架,用来搭建一个完整功能的网站。

安装

npm install express

路由

确定应用程序如何响应客户端请求

app.method(path,handler)
  • app:是Express的实例
  • method:HTTP请求方法(GET,POS等)
  • path:服务器上的路径
  • handler:路由匹配时执行的函数

静态文件

var app = express();
app.use(express.static("public"))   
  • public:图片 CSS Javascript 等静态文件所在目录

GET请求和POST请求


...........![在这里插入图片描述](https://img-blog.csdnimg.cn/2020060521365060.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3B5dGhvbmFu,size_16,color_FFFFFF,t_70#pic_center)
服务端开发 node.js 模块化编程 1.什么是模块 在node.js中,所谓的模块,就是一个文件,通常是js文件或json文件。 换言之,一个Node.js文件就是一个模块。 模块是Node.js应用程序的基本组成部分。 (2).为什么需要模块机制? 前面,在浏览器端已经讨论过模块化的问题。 回顾一下,在浏览器为何需要模块化? 主要是解决两大问题:  全局变量污染  繁琐的文件依赖 到了服务端,情况是有些不同的。 ... 阅读详情

相关推荐

Node.js服务器搭建与配置实践指南

本文还有配套的精品资源,点击获取 简介:本文详细介绍了如何在本地计算机上安装Node.js服务器,包括下载安装包、运行安装向导、配置系统环境变量,并演示了如何使用VSCode的Live Server插件来实时预览项目。同时,还指导如何编写和启动Node.js应用服务器代码,通过批处理文件一键启动服务器,以及如何查阅接口文档进行开发和调试。 1. Node.js服务...

weixin_42462474的博客 1796

Nodejs快速搭建简单的HTTP服务器,并发布公网远程访问

Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原为 Node.js Foundation,已与 JS Foundation 合并)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于资料密集的即时应用程序。Node.js 大部分基本模块都用 JavaScri

唯有努力,方可自信! 7610

KEPServerEX实战:Modbus TCP与RTU双协议配置详解

本文详细解析了如何使用KEPServerEX软件同时配置与管理Modbus TCP和RTU混合网络。通过实战步骤,指导用户建立双协议通道、配置设备与标签,并分享核心的地址映射规则与通讯故障排查技巧,帮助工业自动化工程师高效集成多协议设备,简化数据采集架构。

weixin_29186249的博客 398

Node.js服务器端开发

创建nodejs服务器的步骤 NodeJS服务器开发 学习服务器开发的目的 服务器的主要工作 使用Node创建服务器示例 http协议 关于http请求和响应 get请求和post请求的区别 根据客户端的请求地址访问不同的内容,通过对请求对象(request)的url属性来获取用户的请求地址 获取请求头信息 响应消息 HTTP请求和响应的处理 get请求参数的处理 post请求参数的处理 路由 静态资源的访问 Node.js的异步编程 同步API 异步API 回调地狱 回调地狱的解决方法 异步函数 .

m0_58646138的博客 3353

linux redis7 完整的集群搭建过程

一。安装: 1.1 说明: Redis官方只提供了源码,并没有提供经过编译之后的安装包。 因此,安装Redis,要先编译、后安装。(即源码安装方式) 注意:需要联网安装 1.2 安装编译的工具: yum install gcc gcc-c++ -y 1.3 下载tar包,上传到linux服务器,解压配置环境变量 1.4 cd +解压的目录下:编译 make 注意:如果编译失败,请重新进行解压编译,...

m0_38028438的博客 719

SWIPT技术(无线通信携能技术)的简介与架构——(后续补充无人机SWIPT方向)

SWIPT一、SWIPT(无线通信携能)技术简介1.1、组成:1.2、与传统无线通信的区别:1.3、SWIPT 的集成接收器架构设计1、单独的接收器2、TS架构——时间开关(Time switching,TS)3、PS架构——功率分流(Power splitting,PS)4、天线开关接收器主要两种架构的区别参考文献SWIPT的发展 一、SWIPT(无线通信携能)技术简介 SWIPT(Simultaneous Wireless Information and Power Transfer )是各种WPT技术

Blue 1万+

Node.js如何实现服务端编程?使用场景是什么?底层原理是什么?

Node.js 通过其事件驱动架构、非阻塞 I/O 模型和高性能的 V8 引擎,非常适合构建高性能的服务端应用。通过使用 Express.js 和其他库,可以轻松实现复杂的 Web 应用和 API 服务。理解 Node.js 的底层原理,如事件循环、非阻塞 I/O 和模块化设计,可以帮助开发者更好地利用 Node.js 构建高效和可靠的后端应用。

长风破浪会有时的博客 1339

(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图

保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。

shayuxing的博客 2万+

使用Node.js搭建服务器

使用Node.js搭建服务器

HWL5679的博客 5010

华为od 面试手撕代码题【完成任务最少小时】

华为od 面试手撕代码题【完成任务最少小时】

MISAYAONE的博客 1584

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6270

理解 Node.js:利用JavaScript 进行服务端编程的利器

为了能更加透彻的理理解Node.js,我们不妨来看一段维基百科对于Node.jsNode.js可通过JavaScript和一系列模块来编写服务器端应用和网络相关的应用。其核心模块包括文件系统I/O、网络(HTTPTCPUDPDNSTLS/SSL等)、二进制数据流、加密算法、数据流等等。Node.js模块的API形式简单,降低了服务端编程的复杂度。通过维基百科这段描述我们不难看出,对于Node.js而言,其核心其实可以概括为JavaScript服务端两个关键字。作为前端开发工程师,JavaScript。

CTZL123456的博客 1119

被滑块虐了3个月!我终于写出了零失败的Python滑块验证码通杀方案(AI识别+真人轨迹)

缺口识别的偏移量一定要算对:滑块的初始位置一般在图片左侧,宽度约50像素,一定要减去这个初始宽度,不然会滑多了;绝对不要用Selenium的drag_and_drop方法:这个方法是匀速滑动,直接被风控秒识别,必须自己分步控制鼠标移动;滑动前后必须加停顿:真人按住滑块会停0.1-0.3秒再开始滑,松开之前也会停0.05-0.1秒,不要按下去立刻就滑,滑完立刻就松;不要每次都滑的完美无缺:可以设置10%的概率故意滑错一次,然后刷新验证码重新滑,更像真人;无头模式通过率极低。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 502

node.js 初识node.js,运行在服务端的 JavaScript(一)

文章目录1.浏览器原理2.浏览器访问服务器过程3.web开发本质4.什么是node.js?5.node.js有哪些特点?6.安装Node.js 1.浏览器原理 2.浏览器访问服务器过程 https://edu.aliyun.com/lesson_1730_14083?spm=5176.10731542.0.0.4fb815f2VGm9PU#_14083 请求报文和相应报文。 3.web开发本质 一般web都是下面三点一样: 1.请求,客户端发起请求。 2.处理,服务器处理请求。 3.响应,服务器将处理结果

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 1万+

零基础入门simulink建模仿真--基于Simulink的QPSK调制与解调仿真建模示例

QPSK是一种相位调制技术,将两个比特映射到一个符号上,每个符号对应四个可能的相位之一(0°、90°、180°、270°)。通过Simulink,我们可以通过模块化的建模方式实现QPSK的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的QPSK调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解QPSK调制与解调的基本原理及其应用。所需工具和环境:列出进行QPSK仿真所需的工具和环境。步骤详解。

amy_mhd的博客 1310

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

25服务端_Node.js 12:服务端JavaScript的未来

作者 | Paige Niedringhaus 译者 | 王强 编辑 | Yonie 自 2009 年首次发布以来,Node.js 一直是一项改变游戏规则的技术。概括来说,它允许开发人员使用 JavaScript 在服务端运行脚本,在页面发送到用户的 Web 浏览器之前生成动态 Web 内容。Node.js 是“JavaScript 无处不在”的潮流代表;在这种潮流推动...

weixin_36004568的博客 129

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

运行js_前端走向后台:Node.js 让 JavaScript 运行在服务端,真香

1、什么是 node.js?① Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。② Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。2、安装 node.js官网链接:ht...

weixin_29723669的博客 1303

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaScript在服务端(Node.js)和客户端的区别

JavaScript是一种脚本语言,一般运行在客户端,而Node.js可以使JavaScript运行在服务端。JavaScript包含三部分:ECMAScript、DOM、BOM三部分。 ECMAScript是JavaScript的核心语法 DOM是HTML和XML的应用程序接口(API),用于控制文档的内容与结构 BOM(浏览器对象模型)可以对浏览器窗口进行访问和操作 区别: 在客户端,Ja...

weixin_42625218的博客 7750

Node.js:让JavaScript冲出浏览器,干翻服务端的狠角色!!!

【代码】Node.js:让JavaScript冲出浏览器,干翻服务端的狠角色!!!

productmanag的博客 192

服务端之node.js

是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。 Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得

weixin_45846241的博客 489

Web前端高级工程师培训:使用 Node.js 构建一个 Web 服务端程序(1)

WebServer,也称为网页服务器,通俗来讲就是提供 网页浏览器服务的机器。通常Web资源(html、css、js、images……)都会存放在一个指定的 服务器 中,然后通过特定的软件 (),如,来提供访问服务。访问模式首先由客户端(浏览器)发送一个请求,通过网络连接到提供Web服务的机器,会监听到客户端请求,并根据请求作出处理,返回对应的资源。

weixin_50556117的博客 1490

Node.js入门教程(一):初识Node.js——服务端JavaScript的诞生与特点

从浏览器走向服务器,JavaScript的华丽转身

Smell_of_earth的博客 307

Node.js一个让JavaScript运行在服务端的开发平台

1.Node.js介绍 1.1 Node.js是一个基于Chrome V8引擎的[JavaScript运行环境]。 Node.js使用了一个事件驱动、非阻塞式I/O 的模型。 1.2 Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言 注2:Node.js v10.15.3文档地址:http://nodejs.cn/api/ 2.Node.js环境...

weixin_60269711的博客 1870

homepage 集成 Crowdsec 安全防护数据:告警与封禁 Widget 配置与源码深度解析

Crowdsec 是一款开源的协作式入侵防护系统,能够在检测到恶意行为时对攻击者 IP 执行封禁(ban)等响应动作。本篇文章聚焦 homepage 项目中的 Crowdsec 服务 Widget,完整讲解其 YAML 配置方式、`limit24h` 等关键参数的作用,并结合仓库源码剖析 Widget 底层如何通过 Crowdsec Local API 完成机器登录、令牌缓存、告警与封禁数据拉取的

gitblog_00816的博客 458

【Node.js】 运行在服务端的 JavaScript

官网:Node.js 中文网:Node.js待完善

李留白 930
上一篇: JS其他
下一篇: Html课程笔记
oooo1111100000
博客等级 码龄7年 0粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值