如何查看网站ftp地址视频广告联盟平台

news/2025/9/28 7:42:06/文章来源:
如何查看网站ftp地址,视频广告联盟平台,国内创意网站案例,dz论坛做分类网站前提#xff1a;依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板#xff0c;在这基础上进行修改。与动态资源处理代码不同的是#xff0c;这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板在这基础上进行修改。与动态资源处理代码不同的是这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点 解析post请求方法一的重点在于——注册和登录表单在处理查询参数query时使用了不同的方法。这是因为这两种表单的处理方式在HTTP请求的结构上有所不同。注册表单使用的是post请求登录表单使用的是get请求。 在POST请求中数据位于请求体中而在GET请求中数据位于URL的查询字符串中。 2》具体要求 完成注册、登录、已注册的用户表单展示功能也就是表单填写的用户名、密码、性别这三个信息。此处文件上传功能方法一不能实现如要实现文件上传请见方法二 一、解析post请求方法一介绍 因为Node.js 没有提供直接解析POST请求提交的数据的模块 所以一般是通过request的data和end事件获取请求报文中请求正文的内容后再解析。 二、资源配置 1页面配置 我们将首页index.html、登录login.html、注册regist.html、用户表单注册信息users.html、错误提示模板页面404.html这五个html页面写在views这个大文件夹下。样式mian.css和图片和表单提交的图片分别放入public这个大文件夹下的css、images、head文件下。最后创建一个data大文件夹data下面建一个user.json文件来专门存储用户数据。解析post请求方法一的服务器代码我写入serve.js下。后继写的解析post请求方法二的服务器代码我将写在serve2.js下。 用户列表渲染功能index.html就是可以将我的user.json里面注册成功的用户表单数据渲染到我的服务器用户列表页面 index.html页面、login.html页面、404.html页面与我动态资源处理代码里写的一致此处略写。 见 http://t.csdnimg.cn/TSNW9  regist.html页面 !DOCTYPE html html langen headmeta charsetUTF-8title注册/titlelink relstylesheet href../public/css/main.css /head bodyh1注册/h1img src../public/images/01.png altbrform methodpost action/doRegist input typetext nameusername placeholder用户名brinput typepassword namepassword placeholder密码brinput typeradio namegender value男 checked男input typeradio namegender value女女brinput typefile namehead multiplebr !-- multiple允许选择多个文件 --input typesubmit value注册br /form /body /htmlusers.html页面 !DOCTYPE html html langenheadmeta charsetUTF-8title用户列表/titlelink relstylesheet href../public/css/main.css /headbodyh1用户列表/h1img src../public/images/01.png altbrtabletheadtrtd用户名/tdtd密码/tdtd性别/tdtd头像/td/tr/theadtbody!-- 遍历json里的数组 --% for(var user of users){ %trtd% user.username %/tdtd% user.password %/tdtd% user.gender %/tdtdimg src../public/head/% user.head % width50/td/tr% } %/tbody/table /body/html users.json页面 [] 2在我的测试代码的终端 npm install underscore -save安装underscore渲染模板引擎 、npm install querystring安装querystring查询模块 三、代码实现 1 测试代码serve.js如下 //serve.js 解析post请求 法一 // 通过request的data和end事件获取请求报文中请求正文的内容后再解析 const http require(http); const fs require(fs); const path require(path); const url require(url); // 导入查询参数的模块 const querystring require(querystring); // 声明一个专门存放所有用户的变量 var users; // 导入underscore渲染模板 const _ require(underscore); //使用underscore渲染模板 function render(data){//读取模板内容let tempfs.readFileSync(path.join(__dirname,views/404.html));// 获取渲染函数let compiled_.template(temp.toString());//渲染模板return compiled(data); } //读取文件。读取users.json存放的用户数据文件 fs.readFile(path.join(__dirname,data/users.json),(err,data){if(err){return;}else{//如果读取正确就将读到的内容转换为一个对象存到users里usersJSON.parse(data.toString());} }) //创建服务器 const serverhttp.createSever(); //服务器做出请求响应 server.on(request,(req,res){//将url转为一个对象才能获取到它的pathnamelet objurlurl.parse(req.url);let pathname objurl.pathname;// 对pathname做处理// 首先解决静态资源处理 判断方法startWith、indexOf、search、includes// startsWith方法 以什么开头if (pathname.startsWith(/public)) {// 找到当前项目文件夹再将相对路径转为绝对路径let p path.join(__dirname, pathname);fs.readFile(p, (err, data) {if (err) {//可以使用中文因为现在是html页面去显示的res.end(render({ msg: 访问的文件不存在 })); } else {res.end(data);}})}else if(pathname / || pathname /home){let p path.join(__dirname, views/index.html);fs.readFile(p, (err, data) {if (err) {res.end(render({ msg: 访问的文件不存在 }));} else {res.end(data);}})}else if(pathname /regist){let p path.join(__dirname, views/regist.html);fs.readFile(p, (err, data) {if (err) {res.end(render({ msg: 访问的文件不存在 }));} else {res.end(data);}})}else if(pathname /login){let p path.join(__dirname, views/login.html);fs.readFile(p, (err, data) {if (err) {res.end(render({ msg: 访问的文件不存在 }));} else {res.end(data);}})}else if(pathname /doLogin){ //登录表单let query querystring.parse(objurl.query); //登录表单通常使用GET请求。处理get请求方法一借助querystring模块。querystring.parsereq.url.query) 将字符串参数解析成对象let username query.username;let password query.password;// 声明一个变量result代表我的判断结果let result false;for (let user of users) {if (user.username username user.password password) {result true;break;}}if (result) {res.end(render({ msg: 登录成功 }));} else {res.end(render({ msg: 用户名或密码错误登录失败 }));}}else if(pathname /doRegist req.method.toLowerCase() post){ //注册表单 此处为post请求解析过程。最重要。注意let chunk ; //chunk是一个字符串对象是为了收集或缓存从请求中传入的数据req.on(data, (data) { //事件监听器它监听req上的data事件。当HTTP请求体中有数据可读时这个事件就会被触发chunk data; //当data事件被触发时它会执行这个函数。函数内部它将传入的数据data追加到churk字符串上。这意味着随着数据逐渐流入churk将积累所有的数据。});req.on(end, () {// 上面读取完毕开始注册操作let queryquerystring.parse(chunk); // //使用POST请求时请求体req.body包含要发送到服务器的数据,而不是URL的查询字符串req.url. 因此我们需要监听data和end事件来收集从请求体中传入的数据。在data事件中我将传入的数据片段添加到chunk变量中然后在end事件中解析这个chunk通常是一个Buffer或字符串以获取查询参数let usernamequery.username;let passwordquery.password;let genderquery.gender;let user{username:username,password:password,gender:gender,head:}users.push(user);fs.writeFile(path.join(__dirname,data/users.json),JSON.stringify(users),(err){if(err){res.end(render({msg:注册失败}));}else{// 注册成功// 重定向(服务器端主动发起一个请求)到登录页面res.writeHead(302,{Location:/login});res.end();}})});}else if(pathname /list){ let p path.join(__dirname, views/users.html);fs.readFile(p, (err, data) {if (err) {res.end(render({ msg: 访问的文件不存在 }));} else {//获得渲染函数 let compiled _.template(data.toString());// 调用渲染函数来生成html内容let html compiled({ users: users }); //我们在模板里取的是users的属性 所以不能简写成users而是usersusersres.end(html);}})} });//启动监听 server.listen(3000, 127.0.0.1, () {console.log(Server is running at http://127.0.0.1:3000); }) ***重难点 4注意解析post请求方法一的重点在于——注册和登录表单在处理查询参数query时使用了不同的方法。这是因为这两种表单的处理方式在HTTP请求的结构上有所不同。 注册表单POST请求 当您提交注册表单时通常使用POST请求因为它涉及到向服务器发送数据在这种情况下是注册信息。当您使用POST请求时请求体req.body包含要发送到服务器的数据而不是URL的查询字符串req.url。因此您需要监听data和end事件来收集从请求体中传入的数据。在data事件中您将传入的数据片段添加到chunk变量中然后在end事件中您解析这个chunk通常是一个Buffer或字符串以获取查询参数。 登录表单GET请求 登录表单通常使用GET请求因为它不涉及向服务器发送大量数据。相反它可能只是请求用户信息如用户名和密码来验证用户身份。在GET请求中请求参数被附加到URL的末尾并作为查询字符串出现。由于查询字符串是URL的一部分您可以直接从req.url中获取它并使用querystring.parse()来解析它。您使用的url.parse(req.url)方法会返回一个对象其中包含URL的不同部分包括查询字符串然后您可以使用querystring.parse()来解析查询字符串。 总之注册和登录表单在处理查询参数时使用不同的方法因为它们使用了不同类型的HTTP请求POST和GET并且数据在请求中的位置不同。 在POST请求中数据位于请求体中而在GET请求中数据位于URL的查询字符串中。 2运行结果如图所示

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

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

相关文章

google登录洛阳网站seo

目录 方案一:使用Samba共享服务Ubuntu 18 端配置Windows 10 端访问 方案二:使用 SSHFS(需在 Windows 上安装 SSH 客户端)Ubuntu 18 端配置Windows 10 端配置 方案三:使用 FTP 服务Ubuntu 18 端配置Windows 10 端访问 方…

网站备案编号推广公司的新产品英文

在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varch…

【前言】从重复劳动的奴隶到自动化大师

【前言】从重复劳动的奴隶到自动化大师如果你正在读这篇文章,我相信我们有一个共同的痛点:那些永远处理不完的重复性工作。 也许你和我一样,曾经在这些场景中挣扎过:每周一要手动整理几十个部门的报表,复制、粘贴…

网站开发毕业设计中期汇报表什么是网络营销?网络营销的常用方法有哪些?

1037 在霍格沃茨找零钱 (20 分) 如果你是哈利波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利…

想做网站制作运营注册什么公司核实使用asp.net做购物网站

在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答。1Q:Consul是什么?A:Consul是一个分布式…

网站开发需求书打码兔怎么和网站做接口

二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。 最大堆:父结点的键值总是大于或等于任何一个子节点的键值; 最小堆:父结点的键值总是小于或等于任何一个子…

谷歌浏览器网页版入口手机版东莞网站seo推广

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 PDFMathTranslate是一个开源项目,旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本,还能保留公式、图表、目…

代做机械设计的网站开发公司网签过期

Math中定义了许多的方法,通过Math类就能直接调用,均为static类型。 1、 调用形式:Math.方法名2、三角函数方法: static double sin(double a ) : 返回角的三角正弦static double cos(double a) : 返回角的三角余弦s…

copyright技术支持 东莞网站建设郑州同济医院收费高吗

zipkin 自定义采样率在第一篇文章的后续部分,这一次我们将编写一些更有用的自定义收集器:用于按给定的标准进行分组,采样输入,批量处理以及在固定大小的窗口上滑动。 分组(计数事件,直方图) 假…

电子商务和网站建设区别最新wordpress免费主题

简介 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来生成新的对象,而无需再次使用构造函数。 描述 原型模式通过复制现有对象来创建新的对象,而无需显式地调用构造函数或暴露对象的创建…

VS2022激活秘钥

今天提醒我试用期过了 ,于是在网上找了个秘钥: VHF9H-NXBBB-638P6-6JHCY-88JWH

NOIP2025模拟赛24

T1 T2 T3 T4\(\color{#52C41A} 普及+/提高\) \(\color{#3498DB} 提高+/省选-\) \(\color{#9D3DCF} 省选/NOI-\) \(\color{#0E1D69} NOI/NOI+\)参赛网址:https://oj.33dai.cn/d/TYOI/contest/689ad798c5d9c2f14c20b17f…

郑州中原区建设局网站柳江企业网站开发公司

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、内省是什么、实现方式: 内省(Introspector)是Java语言对Bean类属性、事件的一种缺省处理方法。…

亿诚建设项目管理有限公司网站四字母net做网站怎么样

数据架构的重要构件之一是数据模型,当然从数据架构的视角来说的数据模型是指企业级数据模型。本篇文章更多是讨论如何设计和管理数据模型,此处的数据模型是泛指在组织中通过数据建模的过程,来发现、分析和确定数据需求范围,并用于…

五屏网站建设代理商珠海网站建设电话

文章目录 电压源与电流源简介1.电压源的本质2.电流源的本质3.Q&A 推荐学习 电压源与电流源简介 1.电压源的本质 无论带什么样的负载,输出电压保持不变的电路才是电压源。 一个电路想要输出电压不变,那它必须有强有力的输出电流能力,而不…

grammar(?

随机重排函数,shuffle(begin(),end(),rnd / rand()); (mt19937 rnd(time(0))😉 scanf读入printf输出 long double 需要用 %Lf

外贸电子网站建设南京seo关键词优化服务

一、堆树的定义 堆树的定义如下: (1)堆树是一颗完全二叉树; (2)堆树中某个节点的值总是不大于或不小于其孩子节点的值; (3)堆树中每个节点的子树都是堆树。 当父节点的键…

免费招聘网站平台有哪些wordpress右侧空白

第二周作业:本周作业内容:1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。touch,rm,mv,cp,file,ls,chmod,chown,ln,rename,touch 修改文件atime,如果文件不存在,那么创建该文件。rm&#xff1…

网站 外包 版权网站域名价值查询

大模型日报 2024-05-05 大模型新闻: Techs new arms race: The billion-dollar battle to build AI - 小型专业化模型可以为各种细分应用提供关键的、高效的能力,这是AI行业必须要支持的。来源:VentureBeatGenerative AI on Agenda for Next CIECA Webin…

什么网站做的比较好国家企业信息年度申报系统

内置函数 all()1、描述:all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 True,否则返回 False。元素除了是 0、空、None、False外都算 True。等价于函数:def all(iterable):for element in iterable:if not element:retur…