总结:NodeJS

news/2024/4/26 5:40:35/文章来源:https://blog.csdn.net/w2009211777/article/details/129177092

一、介绍

Nodejs就像是Java中的JVM,是js的运行环境。nodejs不是一个js框架,千万不要认为是类似jquery的框架。

nodejs的作用和jvm的一样一样的,也是js的运行环境,不管你是什么操作系统,只要安装对应版本的nodejs,那你就可以用js来开发后台程序。

Nodejs就是使用javascript编写,并且运行在服务器。也就是说Nodejs实现了使用js来开发后端

这具有划时代的意义,意味着一直以来只能在浏览器上玩来玩去的js,可以做后端开发了!

从有了Nodejs后就催生出一大批用js做后台开发的前端人员,这部分人员就是偏前端的“全栈程序员”。

Nodejs采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步模型等技术来提高性能,可优化应用程序的传输量和规模。

V8引擎是Google发布的开源JavaScript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl鬼才般地,把这个V8搬到了服务器上,用于做服务器的软件。

Nodejs大部分基本模块都用JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。

二、Nodejs产生背景

产生原因:解决传统服务器内存浪费大的问题。

传统服务器每次产生一个请求,就对应着一个线程。数据请求又比较慢就会出现有很多线程再缓存中等待,就会造成大量的内存浪费。

所以使用Node.js编写的服务器采用单线程模式,即不管产生多少请求就只有一个线程,这样就可以节省空间,大大降低了成本。

我们常说JS是单线程的,这也与它运行在Nodejs上的有关。

三、特点

1、单线程

Node.js是单线程的,有利也有弊。

弊端:如果请求太多单线程会处理不过来的,所以我们一般情况下采用集群的方法来弥补这个缺点。集群是指采取多个服务器,node.js对服务器的要求不高,所以不必担心价格问题。

优点:不占用内存,没有CPU频繁切换的消耗

2、

四、Nodejs的用途

Nodejs就是服务器,所以服务器有的作用它都有,如:Web服务API,比如REST

五、安装

参考Hubble-UI的安装即可。

安装完并配置环境变量后,验证下:

六、Nodejs开发

1、node命令行模式

输入node即可,然后输入js代码,并回车执行:

2、执行js文件

首先,编写JS文件,hellonode.js:

运行文件:

七、浏览器与node.js的区别

  • NodeJS 环境和浏览器环境一样都是一个 JS 的运行环境, 都可以执行JS代码,但是由于​​宿主的不同所以特点也有所不同

  • 浏览器和node.js都可以看作是JS的运行平台,浏览器是JS在客户端的运行时环境,而node.js是JS在服务端的运行环境。

  • JS需要浏览器的JS引擎进行解析执行,但是不同浏览器的JS引擎不同,存在兼容性问题。而node.js是基于 chrome v8引擎的运行时环境,无兼容性问题。

待补充

八、Nodejs操作数据库

Nodejs开发后端案例之操作数据库。

首先连接Mysql数据库之前需要先去安装npm包管理中的MySQL模块,该模块支持MySQL5.7+的数据库;

安装Mysql模块:

npm install mysql -S

连接数据库:

// 导入mysql
var mysql = require("mysql");
// 创建连接
var con = mysql.createConnection({host:"localhost",user:"root",password:"123456",database:"feedback"
})
// 连接数据库
con.connect(function(err){if(!err){console.log("数据库连接成功")}else{console.error("数据库连接失败",err);}
})

查询数据库中的数据:

如下顺便提供了一个/list接口:

app.get("/list",function(req,res){// 定义sqlvar sql = `select name,score,id from user where 1`;// 查询sqlcon.query(sql,function(err,result){if(!err){// 没有错误返回数据res.json({"errCode":0,"msg":"请求成功","list":result})}else{// 返回错误原因res.json({"errCode":1,"msg":"数据库错误"})}})})

访问:

九、Nodejs开发Web服务

Express基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

Express.js 主要特性:

  • 更快的服务端开发

  • 赋能开发者更快地构建 RESTful API

  • Express 支持 MVC 架构,但需要开发者做一些额外工作

  • 开箱支持 NoSQL 数据库

安装包

和连接数据库案例一样,我们也要先安装Express相关包:

npm install express -g
npm install express-generator -g

初始化项目

D:\MyWork //进入该目录创建项目
express 项目名称

安装依赖

cd ApiService  //进入项目
npm install  //安装依赖

启动项目:

npm start   //启动

默认监听3000端口,可在bin/www文件内修改或做成配置,浏览器中直接打开访问如下:

开发Api接口:

创建名为 app.js 的文件,并添加以下代码:

const express = require("express");
const app = express();
const port = 3000;app.get("/", (req, res) => res.send("Hello World!"));app.get("/products", (req,res) => {const products = [{id: 1,name: "hammer",},{id: 2,name: "screwdriver",},,{id: 3,name: "wrench",},];res.json(products);
})app.listen(port, () => console.log(`Example app listening on port ${port}!`));

在终端中,运行以下命令以重启 Web Express 应用:node app.js

应该会看到以下输出:

Example app listening on port 3000!

在浏览器中转到 http://localhost:3000/products。 应该会看到以下输出:

[{"id":1,"name":"hammer"},{"id":2,"name":"screwdriver"},{"id":3,"name":"wrench"}]

https://blog.csdn.net/mantou_riji/article/details/124987322

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

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

相关文章

华为OD机试真题 用 C++ 实现 - 字符串加密 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

angular

1. angular获取不到DOM结点 angular中的ngOnInit钩子函数获取不到DOM节点; 这个钩子函数中,表示组件和指令初始化完成,并不是真正的DOM加载完成; 所以这时候需要利用另外一个钩子函数ngAfterViewInit(),是在视图加载完…

界面组件Kendo UI for Angular——让网格数据信息显示更全面

Kendo UI致力于新的开发,来满足不断变化的需求,通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for Angular是专用于Angular开发的专业级Angular组件,telerik致力于提供纯粹的高性能Angular UI组件&#xff0c…

Leetcode之消失的数字轮转数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、消失的数字一、消失的数字 二、旋转数组 提示:以下是本篇文章正文内容,下面案例可供参考 一、消失的数字 这题找出消失的一个数字&#…

(二十三)、实现评论功能(3)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;删除评论的样式和实现逻辑 1.1 添加删除评论的样式 在comment-item组件中&#xff1a; <view class"username">{{giveName(item)}}<text class"iconfont icon-a-43-guanbi" click.stop"delComment"></text><…

【总结】python3启动web服务引发的一系列问题

背景 在某行的实施项目&#xff0c;需要使用python3环境运行某些py脚本。 由于行内交付的机器已自带python3 &#xff0c;没有采取自行安装python3&#xff0c;但是运行python脚本时报没有tornado module。 错误信息 ModuleNotFoundError&#xff1a;No module named ‘torn…

计算机网络第3章(数据链路层)学习笔记

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

JVM面试总结

文章目录栈帧中存放的信息&#xff1a;对象的创建过程对象的内存布局&#xff1f;对象的访问定位方式&#xff1f;如何判断对象已死&#xff1f;可以作为GC Root的点&#xff1a;谈一下引用对象再被回收时如何逃脱&#xff1f;回收方法区如何判断常量是否废弃&#xff1f;垃圾回…

Redis的安装部署和配置文件的修改

1、准备安装环境 由于 Redis 是基于 C 语言编写的&#xff0c;因此首先需要安装 Redis 所需要的依赖&#xff1a; yum install -y gcc tcl gcc-c make 2、上传安装文件 将下载好的 redis-6.2.7.tar.gz 安装包上传到虚拟机的任意目录&#xff08;一般推荐上传到 /usr/local/s…

Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

了解了主键索引的底层原理&#xff0c;主键索引其实就是根据主键字段建立相关的数据结构&#xff08;B树&#xff09;&#xff0c;此后在使用主键字段作为条件查询时&#xff0c;会直接根据主键查找B树的叶子结点。除了主键索引外&#xff0c;普通索引和唯一键索引也是如此&…

stm32f103封装 入门教学(一)LED程序CubeMX

本文代码使用 HAL 库。 文章目录前言一、LED 原理图二、CubeMX创建工程三、LED 相关函数1. 输出电平函数&#xff1a;2. 延时函数&#xff1a;3. 翻转电平函数&#xff1a;四、详细代码实验现象 &#xff1a;总结代码 源码&#xff1a;前言 从这篇文章开始&#xff0c;我们讲解…

了解Axios及其运用方式

Axios简介 axios框架全称&#xff08;ajax – I/O – system&#xff09;&#xff1a; 基于promise用于浏览器和node.js的http客户端&#xff0c;因此可以使用Promise API 一、axios是干啥的 说到axios我们就不得不说下Ajax。在旧浏览器页面在向服务器请求数据时&#xff0c;…

醒醒吧,外包测试哪有前途,你只是一块干电池而已,随时会被替换掉

我25岁的时候&#xff0c;外包测试&#xff0c;薪资13.5k&#xff0c;人在深圳。 内卷什么的就不说了&#xff0c;而且人在外包那些高级精英年薪大几十的咱也接触不到&#xff0c;就说说外包吧。假设以我为界限&#xff0c;25岁一线城市13.5k&#xff0c;那22-24大部分情况下是…

URP渲染管线光照机制剖析

上一节通过剖析URP 摄像机了解摄像机的机制&#xff0c;本节来分析URP的光照的主要机制&#xff0c;并通过与内置的向前渲染管线做对比&#xff0c;来比较它们的与不同。 对啦&#xff01;这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白&#xff0c;也有一些…

小程序电商商城怎么搭建?

做电商的企业商家都会首先搭建好自己的电商商城&#xff0c;尤其是现在小程序盛行的时代&#xff0c;小程序电商商城更是做电商的企业商家的必备媒介。那么小程序电商商城怎么搭建&#xff1f;下面给大家说说一些流程作为参考。 一、准备事项 搭建小程序电商商城&#xff0c;…

打不过就拉拢!ChatGPT和MidJourney已经成我小秘书!太爽了

大家好&#xff0c;我是晓衡。这两周&#xff0c;我战斗力爆棚了&#xff01;每天大概睡了四~五个小时&#xff0c;而且中午也没有休息过&#xff0c;但精神却还很亢奋。直到周一下午&#xff0c;身体才有种被掏空的感觉&#xff0c;晚上 10 点就睡了。可能是兴奋劲还在&#x…

git 的使用方法(上 - 指令)

目录前言&#xff1a;一、Git 是什么&#xff1f;二、SVN与Git的最主要的区别&#xff1f;三、Git 安装四、git 配置1. 创建仓库 - repository2. 配置3. 工作流与基本操作五、Git 的使用流程1. 仓库中创建 1.txt文件2. 查看工作区的文件状态3. 添加工作区文件到暂存区4. 创建版…

蓝桥杯:聪明的猴子

题目链接&#xff1a;聪明的猴子https://www.lanqiao.cn/problems/862/learning/ 目录 题目描述 输入描述 输出描述 输入输出样例 运行限制 解题思路&#xff1a; 最小生成树 AC代码&#xff08;Java&#xff09;: 课后练习&#xff1a; 题目描述 在一个热带雨林中生存…

C++11 条件变量(condition_variable)

一、总述 在C11中&#xff0c;我们可以使用条件变量&#xff08;condition_variable&#xff09;实现多个线程间的同步操作&#xff1b;当条件不满足时&#xff0c;相关线程被一直阻塞&#xff0c;直到某种条件出现&#xff0c;这些线程才会被唤醒。 主要成员函数如下&#x…

【java】Spring Cloud --Spring Cloud Alibaba 微服务解决方案

文章目录1、Spring Cloud Alibaba 是什么先说说 Spring CloudSpring Cloud Alibaba和Spring Cloud 的区别和联系Spring Cloud Alibaba2、Spring Cloud Alibaba 包含组件阿里开源组件阿里商业化组件集成 Spring Cloud 组件3、Spring Cloud Alibaba 功能服务注册与发现支持多协议…