Node 04--使用Node处理表单请求与两种暴露方式

简介: Node 04--使用Node处理表单请求与两种暴露方式

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

使用Node处理表单get请求

表单的格式

一个HTML表单要想点击button按钮就能够提交数据,必须具备以下几个要素:

  1. 表单要有action属性,这个属性是告知浏览器要将数据发送到哪里。
  2. 每一个输入框要有name属性,这个属性是帮助我们定位输入的是什么的。
  3. button的type属性要是submit.
<form action="/pinglun" method="get">
    <div class="form-group">
        <label for="input_name">你的大名</label>
        <input type="text" class="form-control" required minlength="2" maxlength="10" id="input_name"
            name="name" placeholder="请写入你的姓名">
    </div>
    <div class="form-group">
        <label for="textarea_message">留言内容</label>
        <textarea class="form-control" name="message" id="textarea_message" cols="30" rows="10" required
            minlength="5" maxlength="20"></textarea>
    </div>
    <button type="submit" class="btn btn-default">发表</button>
</form>
复制代码

服务器端使用Node的核心模块url(将url字符串转换为对象)

  • 引入url模块
const urlParse = require('url')
复制代码
  • 将url字符串解析为url对象
const parseObj = urlParse.parse(url,true);
复制代码
  • 获取请求路径(这个请求路径是不包含查询字符串的)
const pathname = parseObj.pathname;
复制代码
  • 获取表单发送过来的数据
parseObj.query
复制代码

让客户端的请求进行重定向

  • 首先发送给客户端一个302状态码,让客户端进行临时重定向。
res.statusCode = 302;
复制代码
  • 通过响应头让客户端跳转到指定的路径(下文的路径是根路径)
res.setHeader('Location','/');
复制代码

Node中的两种暴露方式

使用exports.xxx进行暴露(需要暴露的内容都在一个对象中)

使用这种暴露方式,暴露的是一个对象,我们以下面的例子进行举例说明:

  • a.js
const test = require('./b');
console.log(test);
复制代码
  • b.js
const foo = '你好';
exports.foo = foo;
复制代码

我们对a进行调用,输出结果如下所示

{ foo: '你好' }
复制代码

使用module.exports = XXX (这样暴露的就是XXX,我们在实际开发的过程中推荐使用这个方式)

  • a.js
const test = require('./b');
console.log(test);
复制代码
  • b.js
const foo = '你好';
module.exports = foo;
复制代码

对a.js进行调用,输出结果如下所示:

你好
复制代码

小结

node中实际暴露的是module.exports这个对象,你给这个对象赋值,返回的就是值,你给对象添加属性,返回的就是含有属性的对象。

相关文章
|
7月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
47 0
|
7月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
52 0
|
2月前
|
JavaScript
Node.js GET/POST请求
10月更文挑战第6天
36 2
Node.js GET/POST请求
|
5月前
|
JSON JavaScript API
「AIGC」NodeJs使用openai流式请求与非流式请求
本文档是关于使用Node.js与OpenAI API交互的教程,涵盖了非流式和流式请求。非流式请求示例展示了如何一次性返回所有数据,适用于兼容性但可能需要较长时间。流式请求则演示了如何即时响应数据,提高交互体验,但可能不适用于所有系统。代码示例使用了axios库和http模块,展示了如何处理数据流。
327 0
|
4月前
|
大数据 数据处理 分布式计算
JSF 逆袭大数据江湖!看前端框架如何挑战数据处理极限?揭秘这场技术与勇气的较量!
【8月更文挑战第31天】在信息爆炸时代,大数据已成为企业和政府决策的关键。JavaServer Faces(JSF)作为标准的 Java Web 框架,如何与大数据技术结合,高效处理大规模数据集?本文探讨大数据的挑战与机遇,介绍 JSF 与 Hadoop、Apache Spark 等技术的融合,展示其实现高效数据存储和处理的潜力,并提供示例代码,助您构建强大的大数据系统。
55 0
|
4月前
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
前端开发 JavaScript
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
170 4
|
6月前
|
JavaScript
Node.js GET/POST请求
Node.js GET/POST请求
25 1
|
7月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
57 0
|
7月前
|
存储 缓存 负载均衡
Node.js中间层如何处理并发请求以提供高性能和可扩展性
Node.js中间层如何处理并发请求以提供高性能和可扩展性