Node学习之路

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南 本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器。 阅读详情

继续上篇博客的内容,今天继续介绍Node相关的知识

1.服务器相关知识


1.1什么是服务器

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。

1.2前后端分离与耦合架构的概念

前后端分离

前端HTML页面通过Ajax调用后端的RestFul API并使用Json数据进行交互

在这里插入图片描述
前后端耦合—传统的系统
在这里插入图片描述
在这里插入图片描述
架构

前端写完的HTML页面交给后端,后端负责渲染数据,前后端相互调整方式
在这里插入图片描述

2. Express基础

2.1 express介绍

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

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能

2.1.1 使用express创建服务器

a).安装express

	npm install express --save 
	npm install express -S  //简写
	npm i express -S

可以使用淘宝镜像cnpm代替npm

在控制台中输入如下指令,以后即可使用cnpm代替npm

npm install -g cnpm --registry=https://registry.npm.taobao.org

b). 创建一个express服务器

  • 创建一个文件夹expressserver,进入文件夹并且安装express
mkdir expressserver cd expressserver cnpm i express -S
  • 创建index.js

      const express = require('express'); // 第三方模块
       // 实例化一个express对象
      const app = express();
      
      app.get('/', (req, res) => { 
        res.send('hello 1902');
      }) 
      
      app.get('/login', (req, res) => { 
        res.send('登录')
      }) 
      app.get('/test', (req, res) => {
        res.send('测试') }) app.listen(3000, () => {
          console.log('your server is running at http://localhost:3000'); 						    
      })
    

假设浏览器地址栏中地址为
http://localhost:3000/login?username=wudaxun&password=123

匹配的是/login这个路由
nodejs原生: url.parse(req.url, true).query
express: req.query

app.get('/login', (req, res) => { 
  console.log(req.query);
  res.send('登录');
})
2.1.2 express生成器直接生成项目 — 脚手架

通过应用生成器工具 express-generator 可以快速创建一个应用的骨架
express-generator 包含了 express 命令行工具

a). 安装express项目生成器

cnpm i express-generator -g

b).使用命令创建项目

–view=ejs 并不是必须得加的,如果不加,最终默认的模板是jade语法,相比ejs语法,jade语法的学习成本更高

npm/cnpm start可以启动服务器,是因为package.json文件中scripts选项做了配置

express proname --view=ejs
cd proname 
cnpm i 
cnpm start (node ./bin/www)

c).了解项目目录结构

  • bin
    www // 服务器 运行的入口文件 npm start – node ./bin/www
  • node_modules // 在项目中需要使用到的第三方模块
  • public // 静态的资源文件夹
    images
    javascripts
    stylesheets
  • routes // 路由或者是接口的定义
    index.js
    users.js
  • views // 路由所对应的页面
    error.ejs
    index.ejs
  • app.js // 应用各种中间件,设置静态资源文件夹,注册各个路由或者接口
  • package.json // 描述文件,列举了项目需要使用到的依赖以及运行命令、版本号等
2.1.3 静态文件资源托管( static )

为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数。

在本项目中app.js处有这样一句话

app.use(express.static(path.join(__dirname, 'public')));

就可以在views/index.ejs中使用了

<link rel='stylesheet' href='/stylesheets/style.css' />
2.1.4 路由

路由是指确定应用程序如何响应对特定端点的客户端请求,该请求是URI(或路径)和特定HTTP请求方法(GET,POST等)。每个路由都可以有一个或多个处理函数,这些函数在路由匹配时执行。

app.METHOD(PATH, HANDLER)
  • app是一个实例express。
  • METHOD是一个HTTP请求方法,小写。
  • PATH 是服务器上的路径。
  • HANDLER 是路由匹配时执行的功能。
2.1.5 中间件

中间件函数是可以访问请求对象 (req),响应对象(res)以及next应用程序请求 - 响应周期中的函数的函数。该next功能是Express路由器中的一个功能,当被调用时,它将执行当前中间件之后的中间件。
可以使用 app.use() 调用中间件

3. ejs模板的用法

EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面。EJS 没有如何组织内容的教条;也没有再造一套迭代和控制流语法;有的只是普通的 JavaScript 代码而已。

routes/index.js

router.get('/', function(req, res, next) {
  res.render('index', {
    title: '<mark>Express</mark>',
    list: [ 'a', 'b', 'c', 'd'],
     flag: true
  });
 });
  • 前端ejs模板中使用变量
<%- title %> // 解析
<%= title %> // 转义 --- 原样输出
  • 给一个页面导入一个代码片段(首页中导入共同头部)— 包含语法
<%- include('./header.ejs') %>
  • 条件判断
<% if (!flag) { %>
  <ul> 
    <li>week1</li> 
  </ul>
<% } %>
  • 循环语句
<% for (var i = 0; i < list.length; i++) { %>
  <p><%- list[i] %></p>
<% } %>

今天就到这了,请多指教

Android Telephony主要模块及功能 Telephony的代码主要由五个模块组成 1.Telephony Frameworks 代码区域: frameworks/opt/telephony/ 其中主要的文件在如下目录 /frameworks/opt/telephony/src/java/com/android/internal/telephony/ 其中比较常见的有以下几类文件 1.BaseCommands、RIL构成R 阅读详情

相关推荐

脑机接口技术介绍、应用与挑战

脑机接口的概念最先于1973年提出,伴随着计算机性能的飞速提高,在美国“人类脑计划”的资金支持下,脑机接口的研究进入了高速发展期。去年年末,我国科技部会议透露:中国将拿出540亿元,推进中国脑计划的发展。同时,这一举措也推动了我国脑机接口的研究发展。 脑机接口属于多学科交叉科技,涉及神经科学、计算机科学、认知科学、控制与信息科学技术、医学等多个学科。技术实现方式是通过信号采集设备从大脑皮层采集脑电信号,经过放大、滤波、A/D转换等处理,转换为可以被计算机识别的信号,然后对信号进行预处理,提取特征信号,再利

weixin_44603934的博客 9132

如何学习node

Udemy 上的 Node.js 课程(如 [The Complete Node.js Developer Course](https://www.udemy.com/course/the-complete-nodejs-developer-course/))。- [FreeCodeCamp Node.js 教程](https://www.freecodecamp.org/news/tag/node-js/)- [Node.js 官网](https://nodejs.org/) 下载并安装。

qq_43017934的博客 548

什么是OAuth 2.0?

OAuth2.0是一种授权协议而非登录协议,核心思想是通过令牌(Token)而非密码实现安全授权。它涉及三个关键角色:用户、第三方应用和身份提供商(IdP)。最常用的授权码流程(AuthorizationCode Flow)通过浏览器三方对话,确保用户密码只提供给IdP而非第三方应用。OAuth2.0提供四种授权方式,其中授权码和客户端凭证是当前主流,而隐式和密码模式已不推荐。需要注意的是,OAuth2.0解决的是授权问题,身份认证需通过OpenID Connect实现。该协议通过临时令牌机制,实现了&qu

sonadorje的专栏 1159

Node.js入门学习

学习 Node.js 是一个不断探索和实践的过程。从基础的安装和语法学习,到进阶的框架应用、数据库操作和异步编程,再到实际项目中的开发和部署,每一个阶段都需要投入时间和精力。通过利用本文推荐的丰富学习资源,包括在线教程、书籍、视频教程、社区论坛和开源项目,开发者可以更加系统地学习 Node.js,逐步提升自己的技能水平,从入门走向精通。在学习过程中,要注重实践,不断尝试构建自己的项目,将所学知识应用到实际中。同时,积极参与社区交流,与其他开发者分享经验和见解,共同成长和进步。

candy的博客 3024

CentOS Stream 9中安装MySQL的详细步骤

本文详细介绍了在CentOS Stream 9系统中如何进行MySQL的在线安装、离线安装以及忘记密码的恢复操作。通过阅读本文,您将能够了解并掌握在CentOS Stream 9上安装MySQL的步骤,以及在遇到忘记密码的情况下的解决方案。

小白典的博客 7258

手把手教你用ESP32驱动MAX30102心率血氧传感器(含完整代码)

本文详细介绍了如何使用ESP32微控制器驱动MAX30102心率血氧传感器,构建智能健康监测系统。内容涵盖PPG原理、硬件连接、驱动配置、信号处理算法以及Web服务器数据可视化,提供完整代码实现,帮助开发者快速上手物联网健康设备开发。

weixin_29208077的博客 588

node学习

nodejs

qq_48944090的博客 1489

RLC电阻电容电感基础知识——电感篇

电感 等效电路 电感线圈由铜导线绕制,等效电路如图所示。 寄生电阻RS,包括了绕线电阻、引脚串联电阻以及磁芯损耗电阻三部分组成,其中绕线电阻与线径、长度、铜线电阻率有关;引脚电阻与引线长短、粗细有关;磁芯损耗电阻与磁芯材料特性有关,显然磁芯损耗电阻还与工作频率有关.寄生电容C主要是绕线圈与圈之间的杂散电容(为PF级),与绕线工艺有关。 等效导纳 显然: (1)当角频率ω(频率f)较小时,呈电感性. (2)当角频率ω等于ω0时,导纳Y虚部为0,呈现电阻性,即发生共振。令导纳Y虚部为0,即可求出共振角频率ω

azj2019的博客 1万+

node-简绍(node学习开篇)

node简绍 Node.js是开源项目,虽然由社区推动,但幕后一直由Joyent公司资助。 Nodejs区别于传统应用的特点: 异步事件驱动 非堵塞I/O 单线程(这里指主线程) 性能出众 一下是一些别人写的Nodejs的介绍: (有兴趣的可以自行了解) https://blog.youkuaiyun.com/u012028371/article/details/54884056 https://blog.youkuaiyun.com/hsj1669666567/article/details/79568

厚渡 5685

三维模型转变为点云模型的好工具——CloudCompare使用小记

普通三维模型能够直观地展示物体的三维全貌,但是在一些场合需要将三维模型变为相应的点云模型进行展示,而使用激光雷达等传感器采集到的点云信息往往只能反应模型表面的情况,或是使用PCL库中的可执行文件进行转换,这两种操作较为麻烦。笔者最近就遇到了这样一个情况,找到了一个名叫CloudCompare(CC)的软件,能够支持将多种文件格式的三维模型转变为点云模型。以下将本人在使用过程中所使用到的一些操作简记下来供朋友们和将来的自己参考。 一、下载 CloudCompare是一款免费软件,其可以在CloudComp

hdlwyt的博客 2万+

25 - GRACE Mascon数据缺失月份数据插值

本篇基于文章的相关内容和文章公开的奇异谱分析(SSA)插值算法程序包,对grace Mascon数据种缺失的月份进行 插值 ,总结了使用程序包的相关过程,可以将该程序应用到其他数据处理插值计算中。

weixin_43339605的博客 1843

node.js 学习资源

node.js 学习资源 图书 《深入浅出Node.js》 作者:朴灵 《node.js 实战 中国程序员6》 网站资源 CNODE社区 Node.js 简易教程 Node入门 Node.js包教不包会 CNODE-新手入门 其他参考链接 Node.js 究竟是什么? Node.js是用来做什么的? 什么是 node.js Node.js 使用场景 & 实战 Node.js雪球实战半年谈 雪球上的 Node.js 国内有哪些网站使用了 Node.js Node.js &a

Cherish599的博客 319

YOLOv8融合改进 更换检测头为Detect_DyHead同时添加C2f_DBB模块

yolov8独家训练测试融合网络结构,提供详细步骤详细代码,手把手教你在yolov8官方包中把检测头更换为Detect_DyHead检测头,并且将原始的C2f模块更换成C2f_DBB模块,提高检测精度,亲测在多个数据集上有涨点!!!!!

分享一些自己改进代码的实例 4747

如何学习Node.js?

了解如何使用npm(Node Package Manager),它是Node.js的包管理器,用于安装和管理依赖。:加入Node.js社区,如Stack Overflow、Reddit的Node.js板块,参与讨论和获取帮助。:阅读一些关于Node.js的书籍,如《Node.js in Action》或《Pro Express.js》。:将你的项目和应用程序收集起来,创建一个在线作品集,展示你的Node.js技能。:Node.js和相关技术不断发展,保持学习最新的框架、库和最佳实践。

xiaoxiao666699的博客 588

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

node学习路线

新手学习 Node.js 是一个很好的选择,Node.js 让 JavaScript 可以运行在服务器端,用途广泛(如 Web 后端、CLI 工具、桌面应用等)。

qq_69510169的博客 1164

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

如何正确学习 Node.js

2017-12-14 我发了一篇文章《没用过Node.js,就别瞎逼逼》是因为有人在知乎上黑Node.js。那篇文章的反响还是相当不错的,甚至连著名的hax贺老都很认同,下班时读那篇文章,竟然坐车的还坐过站了。大家可以很明显的感到Node.js的普及度还不够,还存很多误解。甚至说很多小白用户也得不到很好的学习。大神都功成身退,书也跟不上,大部分都是2013年左右的,Node.js版本都是基于v0.

Node全栈 1万+

android 蓝牙通讯demo

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

探索Learn-Node:你的Node.js学习伙伴

探索Learn-Node:你的Node.js学习伙伴 去发现同类优质开源项目:https://gitcode.com/ 项目简介 是由前端开发者 Wes Bos 创建的一个开源项目,旨在帮助初学者和有经验的开发人员更深入地理解Node.js。它以交互式的方式,通过一系列精心设计的教程,让你逐步掌握Node.js的核心概念和技术。 技术分析 Learn-Node 基于JavaScript,并使用了N...

gitblog_00095的博客 373

从零开始学习node.js

从零开始学习node.js Nodejs学习路线图

人生代码 ---- 公众号 2052

Node.js从0.5到1学习计划

通过这个强化训练计划,你不仅能掌握Node.js核心开发能力,还能积累真实的项目经验。(Tip:学习完成后可尝试为开源项目提交PR,快速提升实战能力):配置Prometheus + Grafana仪表盘。:构建用户管理API(JWT认证+数据校验):使用ApacheBench进行压力测试对比。:编写异步文件处理程序(读取→修改→保存):开发图书管理系统(增删改查+分页查询):使用OWASP ZAP进行安全扫描。:用Stream实现大文件压缩传输。:构建订单处理微服务集群。:开发电商系统核心模块。

weixin_45825917的博客 700

Node学习

1.node是一个基于Chrome V8引擎的js运行时(运行环境)2.通俗讲:用node这个软件可以独立执行JS文件代码,脱离浏览器软件3.node内使用语法还是js,也管它叫node.jsnode作用:1.读写和操作本地文件和路径2.读写和操作数据库3.基于Express/Koa框架,可以快速构建Web应用4.基于restify框架,可以快速构建API接口项目5.基于Electron框架,可以构建跨平台的桌面应用6…

m0_62289159的博客 1724

学习Node

<el-dialog title="摘要 分类 标签" :close-on-click-modal=false custom-class="xia-write-dialog" > <el-form ref="articleForm"> <el-form-item prop="summary"> <el-input type="texta...

Small_White__的博客 126

Node.js学习笔记(一)——初识Node.js

Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和 API。的用户来说,推荐安装 Current 版本的 Node.js。安装包可以从 Node.js 的官网首页直接下载,进入到 Node.js 的官网首页(的“大宝剑”,有了 Node.js 这个超级 buff 的加持,前端程序员的。后,按下回车键,即可查看已安装的 Node.js 的版本号。),点击绿色的按钮,下载所需的版本后,双击直接安装即可。来说,推荐安装 LTS 版本的 Node.js。

weixin_56370772的博客 861

前端工程师很有必要学习Node

Node的学习很有必要 Node近两年已经成为前端知识栈必备技能之一。随便点开招聘网站找个岗位几乎都会要求会Node,更不用提一些高级岗位了。 可能你看过Node是什么,看过Node的文档,用Node写过一些小项目。但是如果问你——你知道在一线互联网企业里,Node真正是怎么用的吗?是拿来做什么的?怎么做? 我相信百分之八十的人都不知道答案,甚至包括一些用Node写过博客,小站点的前端程序员。这也是大家对于学习很容易出现的问题:我学会了这个框架(技术)的所有API,但是我不知道到商业项目里怎么用它。接下来本

efew212efe的博客 1361

node学习心得

有时间的话总想着改变一下自己,作为一个前端总也想慢慢接触后端,互相了解嘛,刚好node就比较好上手,下面是我学习node的一些心得 转载于:https://www.cnblogs.com/tomofagain/p/10818991.html...

weixin_30778805的博客 243

【全文】狼叔:如何正确的学习Node.js

说明 2017-12-14 我发了一篇文章《没用过Node.js,就别瞎逼逼》是因为有人在知乎上黑Node.js。那篇文章的反响还是相当不错的,甚至连著名的hax贺老都很认同,下班时读那篇文章,竟然坐车的还坐过站了。大家可以很明显的感到Node.js的普及度还不够,还存很多误解。甚至说很多小白用户也得不到很好的学习。大神都功成身退,书也跟不上,大部分都是2013年左右的,Node.js版本都是基...

weixin_40581617的博客 3815

node.js学习

node.js学习实操过程及笔记~ 温故而知新~

enhenglhm的博客 1603
上一篇: Node学习之路
下一篇: Node学习之路
BeyondYdx
博客等级 码龄7年 38粉丝 6原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值