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这个对象,你给这个对象赋值,返回的就是值,你给对象添加属性,返回的就是含有属性的对象。

相关文章
|
4天前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
31 0
|
4天前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
32 0
|
3天前
|
存储 缓存 负载均衡
Node.js中间层如何处理并发请求以提供高性能和可扩展性
Node.js中间层如何处理并发请求以提供高性能和可扩展性
|
4天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
11 1
|
4天前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
9 2
|
4天前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
13 0
|
4天前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
28 0
|
4天前
|
数据采集 JavaScript 前端开发
利用axios库在Node.js中进行代理请求的实践
利用axios库在Node.js中进行代理请求的实践
|
9月前
|
JavaScript
node.js如何获取post和get请求的参数
node.js如何获取post和get请求的参数
67 0
|
4天前
|
JSON JavaScript 前端开发
Node.js GET、POST 请求是怎样的?
Node.js GET、POST 请求是怎样的?
67 1