学node 之前你要知道这些

这篇具有很好参考价值的文章主要介绍了学node 之前你要知道这些。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初识nodejs

  19年年底一个偶然的机会接到年会任务,有微信扫码登录、投票、弹幕等功能,于是决定用node 来写几个服务,结果也比较顺利。

  当时用看了下koa2的官方文档,知道怎么连接数据库、怎么映射表实体,怎么处理http,怎么处理异常等,就可以直接写起来了。从应用层面上来说 nodejs 入门还是挺简单的,前几天在整理语雀时发现前几年整理的nodjs的文档,这里分享下,希望对于初学者有些帮助。

学node 之前你要知道这些

什么是服务器

  服务器也是电脑,服务器是为电脑提供服务的电脑、设备,既然是电脑,那么它也一样是由CPU,主板,内存条,硬盘,机箱,电源等硬件组成。当然由于服务器的特殊性,根我们家用的电脑还是有区别,如大小,处理数据的快慢,温度等。

  服务器也是计算机、电脑,只不过分工不同,如我们人类有医生、护士、律师等,在计算机的世界中也是如此,专门提供服务的计算机,我们叫服务器

  如在我们写了一个网站,我们想让其他人也能打开这个网址,这个时候我们可以把写好的代码发给他,让他跑起来,虽然这样也可以,但是这样非常不友好,第一是用户很多呢?第二并不是所有人都是程序员。所以这个时候如果把这个东西放到某台计算机A上,然后别人可以通过某种服务来访问(比如 http 服务),此时这个计算机A就叫服务器,当然现实生活中服务器不止这一种,还有如 数据服务器、文件服务器、应用服务器、WEB服务器等,根据计算机的服务请求,并进行相应的处理,具备承担服务和保障服务的能力。

学node 之前你要知道这些

通俗理解:服务器是提供计算机服务的设备

常用linux命令

pwd 显示当前的目录路径  
ls 显示当前目录下的内容  
ls -R 列出子目录中的所有文件  
ls -a 显示隐藏的文件  
cd 改变当前工作目录 cd .. 打开上一级,cd / 打开跟目录
cls 清除屏幕信息  
mkdir 创建目录  
rm 删除文件或者空目录  
rmdir 删除空目录  
rm -rf dir 删除非空目录  
ps 列出系统中当前正在运行的那些进程  
ps -ef | grep ssh 查找特定进程信息  ps -ef | grep mysql
kill -9 pid 终止某进程  

同步、异步

 同步就是指一个进程在执行某个动作、请求时,如果这个动作需要一段时间才有结果,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去,反之异步,类似的概念还有 io 阻塞与非阻塞。如ui 界面中点击一个按钮给服务端发出一个请求,如果这个过程涉及成同步的,那么ui 会一直等待这个接口,在这个接口未返回时整个ui界面都是不可用的状态。

网络端口

  通俗的理解,把计算机想成一个大的菜市场,菜市场中的各个档口就是安装在电脑上的各个应用程序,而档口的编号就是类似我们说的端口。ip 只是知道菜市场的地址,并不知道具体根哪个档口通信,这就是端口的作用。

  在看看比较专业的定义,端口号的主要作用是表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务,端口号25指的是SMTP服务等。

url 格式  

URL的全称是Uniform Resource Locator(统一资源定位符),它是因特网万维网服务程序上用于指定信息位置的表示方法。

通俗理解就是 URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL,通过1个URL,能找到互联网上唯一的1个资源。

URL的一般语法格式为:protocol :// hostname[:port] / path / [:parameters][?query]#anchor其中带方括号的为可选项

  • protocol:代表的是访问的协议,一般为http或者https以及ftp等。
  • hostname:主机名,域名,比如www.baidu.com
  • port:端口号。当你访问一个网站的时候,浏览器默认使用80端口。
  • path:查找路径。比如:www.jianshu.com/trending/now后面的trending/now就是path
  • parameters: 资源文件名,有时候统一叫path
  • query:查询字符串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查询字符串。
  • anchor:锚点,后台一般不用管,前端用来做页面定位的。

常见的协议:

  1. http:超文本传输协议,访问的是远程的网络资源,格式是http://
  2. https:协议相当于是http协议的安全版
  3. file:访问的是本地计算机上的资源,格式是file://(不用加主机地址)
  4. mailto:访问的是电子邮件地址,格式是mailto:
  5. ftp:访问的是共享主机的文件资源,格式是 ftp://
  6. thunder:通过支持thunder(专用下载链接)协议的P2P软件访问该资源(代表软件:迅雷),格式是thunder://

http 协议

http在网络架构中属于应用层协议,通过浏览器发起http 协议可以跟服务器进行通信。

HTTP(hypertext transport protocol)协议,中文叫超文本传输协议 是一种基于TCP/IP的应用层通信协议

这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则,协议中主要规定了两个方面的内容

  • 客户端:用来向服务器发送数据,可以被称之为请求报文
  • 服务端:向客户端返回数据,可以被称之为响应报文

请求报文

  • 请求行
  • 请求头
  • 空行
  • 请求体

响应报文

  • 响应行
  • 响应头
  • 空行
  • 响应体

数据库

  数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。简单理解就是存储数据的仓库,我们可以通过我们的代码根这个仓库建立连接,这样可以操作、查询这些数据。

 数据库通常分为关系型数据库、非关系型数据库。

关系型数据库

  关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有MysqlSqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。

常见关系型数据库: Oracle,SQLServer,DB2,Mysql

非关系型数据库

  NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库

  随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景。对于非结构化数据的处理更合适,如文章、评论等

SQL

SQL 是 Structured Query Language 的缩写,中文译为“结构化查询语言”。SQL 是一种计算机语言,用来存储、检索和修改关系型数据库中存储的数据。

通俗理解就是可以用来操作我们存储在数据库中的数据的语言,如查询、删除等

SELECT product_name, product_type
 FROM Product;
 WHERE 1 = 1 
 AND product_type = 'xx';
 
 // 多表联查
 SELECT product_name, product_type
 FROM Product1 t1,Product2 t2
 WHERE 1 = 1 
 AND t1.id = t2.id;
 
 // 同理
 left join,
 right join
 
 其他分组、统计、排序等也很简单

nginx 基本概念

Nginx是一个高性能的HTTP服务器和反向代理web服务器。在前端中我们知道一些基本的知识即可,通常我们用它来做静态资源服务器、接口反向代理。
 
常用命令
start nginx #启动nginx
nginx -s reload     #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop       #强制停止Nginx服务
nginx -s quit       #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -h        #打开帮助信息
nginx -v        #显示版本信息并退出
nginx -V        #显示版本和配置选项信息,然后退出
nginx -t        #检测配置文件是否有语法错误,然后退出
nginx -T        #检测配置文件是否有语法错误,转储并退出
nginx -q        #在检测配置文件期间屏蔽非错误信息
nginx -p prefix     #设置前缀路径(默认是:/usr/share/nginx/)
nginx -c filename   #设置配置文件(默认是:/etc/nginx/nginx.conf)
nginx -g directives     #设置配置文件外的全局指令
killall nginx       #杀死所有nginx进程

配置注意事项文章来源地址https://www.toymoban.com/news/detail-437310.html

  1. 注意配置时 root与alias 区别,特别是我们前端打包时加了虚拟目录,如果配置了 publicPath,那么我们需要配置alias,而不是root
  2. 注意匹配规则、顺序,通常匹配了就不会继续匹配下,所以如果多个类似的接口前缀,需要反向代理到不同的服务时要注意配置的顺序
  3. 接口反向代理时加 / 与不加的区别

到了这里,关于学node 之前你要知道这些的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 想学高并发技能,这些常用的消息中间件( RabbitMQ、Kafka、ActiveMQ、Redis、NATS )你要必知

    对于全栈或者后端工程师来说,解决高并发是一个必备的技能,一说到高并发时,我们第一反应是分布式系统,那么,消息中间件( RabbitMQ 、 Kafka 、 ActiveMQ 、 Redis 、 NATS 等)的出现是为了解决分布式系统中的消息传递和异步通信的问题,以及提供可靠的消息传递机制。它们

    2024年04月15日
    浏览(52)
  • 【Vue 面试题10道】我好像之前想过要写,不过之前JavaScript面试题比较多,就暂时略过了,这些应该几乎把常问的都包括了

    博主: _LJaXi Or 東方幻想郷 专栏: 前端面试题 开发工具: Vs Code 本题针对 Vue2 这些几乎把常用的都包括了,问别的就没意思了,毕竟工作拧螺丝嘛 我都好久不用Vue了,不过用了React再回看Vue感觉好简单啊… 其实工作上都很快能捡起来,就是面试问题可能是必须的,接着往下

    2024年02月16日
    浏览(43)
  • 学习sql,你需要知道这些

    MySql Oracle PostgreSql MogoDB Redis DynamoDB Elaticsearch 事务就是由单独单元的一个或多个sql语句组成,在这个单元中,每个sql语句都是相互依赖的。而整个单独单元是作为一个不可分割的整体存在,类似于物理当中的原子(一种不可分割的最小单位)。 往通俗的讲就是,事务就是一个

    2024年02月07日
    浏览(39)
  • 蓝桥杯将至,这些要点你必须知道

    哈喽,大家好,蓝桥杯是全国软件和信息技术专业人才大赛由工业和信息化部人才交流中心主办,包括北大、清华等在内的全国31个省市自治区1200多所院校参加,每年参赛人数超过30000人。到目前为止,距离比赛还有不到半个月的时间,再次之前,一些比赛的要点你必须知道。

    2023年04月17日
    浏览(80)
  • 【C++】关于多线程,你应该知道这些

    thread类的简单介绍 在 C++11 之前,涉及到多线程问题,都是和平台相关的,比如 Windows 和 Linux 下各有自己的接口,这使得代码的可移植性比较差。C++11 中最重要的特性就是对线程进行支持了,使得 C++ 在并行编程时不需要依赖第三方库,而且在原子操作中还引入了原子类的概

    2023年04月15日
    浏览(49)
  • 关于数字孪生,这些大事件你知道吗?

    数字孪生是指将物理实体通过数字化建模、仿真和可视化技术转化为虚拟实体的过程,可以用于设计、制造、运营、维护等领域。 作为一个新兴技术,在这短暂的几年内,关于数字孪生都有哪些大事件呢? 2017年,德国工业4.0战略正式提出数字孪生的概念,将其作为推动工业

    2024年02月01日
    浏览(46)
  • CodeGeeX中这些隐藏的设置,你知道吗?

    随着CodeGeeX整体性能的升级,越来越多的用户发现CodeGeeX的很多实用功能,能够帮助程序员更快更好的编写代码和解决技术问题。近期,我们看到许多用户在使用CodeGeeX的过程中,有一些相似的疑问。比如,很多人希望能够通过调整设置,让CodeGeeX的生成方式、工作语言更符合

    2024年02月12日
    浏览(41)
  • 希望计算机专业同学都知道这些博主

    “宝藏老师”、“干货满满”、“羡慕湖科大”...这些都是网友对这门网课的评价,可见网课质量之高!最全面的面试网站 湖南科技大学《计算机网络》微课堂是该校高军老师精心制作的视频课程,用简单的语言描述复杂的问题,用生动的动画演示抽象概念,更加便于学生理

    2024年02月05日
    浏览(49)
  • HTML5的这些api你知道吗

    该API可以用来检测页面对于用户的 可见性 ,即返回用户当前浏览的页面或标签tap的状态变化。 在最小化浏览器、切换tap页面时生效.(如需对app中几个webview进行切换操作时,可使用pageVisibility接口进行相应的事件监听和处理。) page visibility的介绍 【document.hidden】 该值表示pag

    2024年02月08日
    浏览(41)
  • 项目管理工具的必备功能,你需要知道这些

    一个项目有很多事情需要计划、控制和管理,因此需要使用项目管理软件来对项目进行管理,除了制定计划、进度跟踪等之外,项目管理软件还应该有这些功能: 甘特图:帮你规划任务。比如说甘特图就可以设置多级任务、耗时和分配给团队成员。 一个项目要么没有好的计

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包