搭建服务器及跨域处理

使用内置的模块搭建服务器

自己电脑:

域名:localhost

ip:127.0.0.1

http模块搭建服务器

const http = require('http')// 创建一个http对应的服务器,每次改完服务器的代码后都需要重新启动下服务器
/*方式一:
const server = http.createServer((request,response)=>{//request对象中包含本次客户端请求的所有信息(请求的url\method\headers\请求携带的数据等)(可读流)//response对象用于给客户端返回结果(可写流)response.end('hello world!')}
)*/
//方式二:
const server = http.createServer()
server.on('request',(req,res)=>{res.setHeader('Content-Type','text/html;charset=utf-8')//等号两边不能有空格res.end('hello,我是服务器')
})
//开启对应的服务器,并且告知需要监听的端口,默认端口是80
//监听端口时,监听1024以上的端口(1024以下的端口已经开通给特定服务做监听的),65535以下的端口
//1025-65535之间的端口,端口是2个字节,所以是256*256=65536=>0~65535
server.listen(8000,()=>{console.log('服务器开启成功');
})

在所在目录node执行该文件即可在该主机上

C:\Users\Administrator\Desktop\learn\node\day2-node服务器> node .\01http服务器基本使用.js
在浏览器输入localhost:8000

使用第三方模块搭建服务器

express:

是一个第三方模块,基于Node.js平台,快速、开放、极简的web开发框架,同类产品koa,用于快速搭建服务器(替代http模块)

初始化

npm init

安装express

中文网参考:expressjs.com.cn

npm i express

注意:

        1.初始化用的什么包管理工具,后面安装也就用该包管理工具(npm\yarn……)

        2.express不能安装在express文件夹中,否则安装失败。

使用express搭建web服务器

        1.加载express模块

        2.创建express服务器

        3.开启服务器

        4.监听浏览器请求并进行处理

const express = require('express')// 1.创建express服务器
const app = express()//写接口语法
/*app.请求方式('/接口地址',(req,res)=>{
//  req-request-请求:获取请求相关信息,就找req
//  res-response-响应:做出响应找res
})*/
//请求数据
app.post('/login',(req,res)=>{console.log('登录成功');res.end('登录成功')
})
app.get('/getbook',(req,res)=>{console.log('首页数据');res.end({status:200,message:'获取图书成功',data:[{id:1,name:'aaa',author:'axx',price:21},{id:2,name:'bbb',author:'bxx',price:12},{id:3,name:'ccc',author:'cxx',price:34},]})
})// 2.监听服务器端口
app.listen(63342,()=>{console.log('63342启动成功');
})

nodenmon

当服务器代码修改后,就要重启服务,非常麻烦,所以采用nodemon插件

nodemon是一个全局模块,安装后,可以使用nodemon代替node运行js文件。

优点:

当代码保存后,nodemon会检测文件代码是否改变了,如果改变了就会自动重启服务器。

全局安装:

npm i nodemon -g

使用

nodemon xxx.js

建议不要滥用nodemon,建议只在启动服务时使用nodemon,其它情况使用node,如果是用cmd启动,则不要点击cmd面板,会冻结不更新,取消冻结点击右键即可。

接口测试工具

浏览器只能测试GET方式的接口,如果是post等方式的接口,则无法使用浏览器测试,所

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

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

相关文章

铁路关基保护新规发布!铁路软件供应链安全洞察与治理思路

近日,国家铁路局发布《铁路关键信息基础设施安全保护管理办法》,《办法》第十四条提到:“运营者应当加强铁路关键信息基础设施供应链安全保护,优先采购安全可信的网络产品和服务。运营者采购网络产品和服务,应当预判该…

Intel FPGA IP之LVDS SerDes IP学习

FPGA 视频数据输入输出直通工程: 屏:13.2吋8bit色深,屏幕分辨率为1440*192060,具有两个Port,每个Port有4个差分数据对与1个差分时钟对,差分对均支持LVDS协议芯片:Cyclone V系列FPGA目的&#x…

Noise Conditional Score Networks(NCSN)学习

参考: [1] https://zhuanlan.zhihu.com/p/597490389 [2] https://www.zhangzhenhu.com/aigc/Score-Based_Generative_Models.html TOC 1 基于分数的生成模型1.1 简介和动机1.2 Score Matching及其改进1.2.1 Score Matching1.2.2 Sliced score matching(不…

XSS_lab(level1-level5)

level1 直接输入页面没有发现输入框&#xff0c;观察url发现有传参 尝试修改传参为&#xff1a;<script>alert(1)</script> 过啦&#xff01; level2 页面中有输入框&#xff0c;尝试构建语句&#xff1a;<script>alert(1)</script>,传输后查看源代…

国际心理学导师-叶子文JeffreyYip的《意识地图》

“物质就是能量。” ---爱因斯坦 “時常保持觉知&#xff0c;有意识地发现情绪起伏 你随时都能翻转人生 做自己人生的导演 当你频率高时&#xff0c;万事万物为你而来” ---大卫霍金斯 叶子文-《意识地图》&#xff1a;高阶心理学课程 宇宙间万物的本质是能量。一切都靠能量…

Java基础---lambda表达式

一、为什么要引入lambda表达式 lambda 表达式是一个可传递的代码块 &#xff0c; 可以在以后执行一次或多次 。 在介绍lambda表达式之前&#xff0c;我们看一下&#xff0c;以前&#xff0c;我们对于一个问题的通常写法。 假设你已经了解了如何按指定时间间隔完成工作&#xf…

js字符串转json的3种方法

1.eval方式解析 function strToJson(str){var json eval("(" str ")");return json;}console.log(strToJson("{int:1, string:demo}")); 运行截图&#xff1a; 注&#xff1a; 记得别忘了str两旁的小括号。 永远不要使用 eval !!! eval() 是一…

611. 有效三角形的个数 - 力扣

1. 题目 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 2. 示例 3. 分析 利用已升序了的数组通过 a b > c 这条公式找出符合要求的三元组&#xff0c;利用这个公式的前提是三条边为从小到大&#xff0c;再利用单调性快速统计…

STM32 (1)

1.基本信息 stm32是由ST公司生产的一种32位微控制器&#xff08;单片机&#xff09;。 1.1 各种型号 stm32是32位单片机的总称&#xff0c;有多种不同的系列。 32即用32个比特位表示一个地址&#xff0c;寻址范围&#xff1a;0x00000000 --0xffffffff (4GB) 1.2 存储密度 …

UE5中实现后处理深度描边

后处理深度描边可以通过取得边缘深度变化大的区域进行描边&#xff0c;一方面可以用来做角色的等距内描边&#xff0c;避免了菲尼尔边缘光不整齐的问题&#xff0c;另一方面可以结合场景扫描等特效使用&#xff0c;达到更丰富的效果&#xff1a; 后来解决了开启TAA十字线和锯齿…

XXL-Job的基本使用

一、市面上常见的任务调度产品 针对分布式任务调度的需求&#xff0c;市场上出现了很多的产品: 其中XXL-job 是我们经常使用的任务调度平台,XXL这三个英文字母.是以作者名许雪里命名的。 可以前往 Gitee 地址进行下载使用 https://gitee.com/xuxueli0323/xxl-job.git二、XXL-J…

第二十一周周报

文献阅读&#xff1a;Recent Advances of Monocular 2D and 3D Human Pose Estimation: A Deep Learning Perspective 摘要&#xff1a;在本文中&#xff0c;作者提供了一个全面的 2d到3d视角来解决单目人体姿态估计的问题。首先&#xff0c;全面总结了人体的二维和三维表征。…

Windows的Linux化持续推进中

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Java基础 - 6 - 面向对象(二)

Java基础 - 6 - 面向对象&#xff08;一&#xff09;-CSDN博客 二. 面向对象高级 2.1 static static叫做静态&#xff0c;可以修饰成员变量、成员方法 2.1.1 static修饰成员变量 成员变量按照有无static修饰&#xff0c;分为两种&#xff1a;类变量、实例变量&#xff08;对象…

故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,XGBoost极限梯度提升树的故障诊断(Matlab) 模型描述 XGBoost通过集成多个决策树来建立一个强大的预测模型。它采用了一种特殊的梯度提升技术,称为极限梯度提升(Extreme Gradient Boosting),以提高模型的性能和鲁棒性。 极限梯度…

【大数据Hive】hive 多字段分隔符使用详解

目录 一、前言 二、hive默认分隔符规则以及限制 2.1 正常示例&#xff1a;单字节分隔符数据加载示例 2.2 特殊格式的文本数据&#xff0c;分隔符为特殊字符 2.2.1 文本数据的字段中包含了分隔符 三、突破默认限制规则约束 3.1 数据加载不匹配情况 1 3.2 数据加载不匹配…

Java项目推荐|几个B站上的从零搭建项目

分享几个B站上搜集到的技术比较全&#xff0c;讲解也详细的Java后端开发项目 目录 谷粒商城 2020-03-31 iHRM 人力资源管理系统 2021-04-16 瑞吉外卖 2022-04-12 学成在线 2023-01-13 尚上优选 2023-06-06 黑马头条 2023-06-13 苍穹外卖 2023-07-05 谷粒商城 2020-03-3…

STM32FreeRTOS任务通知(STM32cube高效开发)

文章目录 一、任务通知(一&#xff09;任务通知概述1、任务通知可模拟队列和信号量2、任务通知优势和局限性 (二) 任务通知函数1、xTaskNotify&#xff08;&#xff09;发送通知值不返回先前通知值的函数2、xTaskNotifyFromISR&#xff08;&#xff09;发送通知函数ISR版本3、x…

Java面试题总结200道(二)

26、简述Spring中Bean的生命周期&#xff1f; 在原生的java环境中&#xff0c;一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中&#xff0c;将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象&#xff0c;就存在生命周期&#xff0c;也就是作用…

LeetCode 刷题 [C++] 第73题.矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 题目分析 题目中要求使用原地算法&#xff1a;即直接在输入矩阵上进行修改。因此如果在输入矩阵上把行/列的值修改成0后&#xff0c;在…