node-express处理表单的接口

写一个小接口,用postman测试接口是否可行????

import express from 'express'
import config from './config'
import router from './router'
import queryString from 'querystring'

const app = express()

app.use('/node_modules', express.static(config.node_modules_path))
app.use('/public', express.static(config.public_path))

// 解析处理表单 POST 请求体中间件
app.use((req, res, next) => {
  // 由于表单 POST 请求可能会携带大量的数据,所以在进行请求提价的时候会分为多次提交
  // 具体分为多少次进行提交不一定,取决于数据量的大小
  // 在 Node 中,对于处理这种不确定的数据,使用事件的形式处理
  // 这里可以通过监听 req 对象的 data 事件,然后通过对应的回调处理函数中的参数 chunk 拿到每一次接收到的数据
  //        data 事件触发多少次,不一定
  // 当数据接收完毕之后,会自动触发 req 对象的 end 事件,然后就可以在 end 事件中使用接收到的表单 POST 请求体
  let data = ''
  req.on('data', chunk => {
    data += chunk
  })
  req.on('end', () => {
    // 手动给 req 对象挂载一个 body 属性,值就是当前表单 POST 请求体对象
    // 在后续的处理中间件中,就可以直接使用 req.body 了
    // 因为在同一个请求中,流通的都是同一个 req 和 res 对象
    req.body = queryString.parse(data)
    next()
  })
})

// 挂载路由容器(路由容器中组织了网站功能处理路由中间件)
app.use(router)

app.listen(3000, () => {
  console.log('server is running at port 3000...')
})
import express from 'express'

// 创建一个路由容器,将所有的路由中间件挂载给路由容器
const router = express.Router()

router.get('/', (req, res, next) => {
  res.render('index.html')
})

router.post('/advert/add', (req, res, next) => {
  // 接口客户端提交的数据

  console.log(req.body)
})

// 通过 export default 暴露的接口成员不能定义的同时直接暴露
// 最好先定义,再暴露
// export default 可以直接暴露字面量 {} 123
export default router

原文地址:https://www.cnblogs.com/ygjzs/p/12232144.html

时间: 2024-08-30 10:28:42

node-express处理表单的接口的相关文章

Node.JS的表单提交及OnceIO中接受GET/POST数据的三种方法

OnceIO 是 OnceDoc 企业私有内容(文档)管理系统的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只压缩一次),拥有非常好的性能,为您节约服务器成本.它的模块化功能,可以让你的Web进行分布式存储,在一个扩展包里即可包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.目前 OnceIO 已经开源,本文主要介绍node.js语言中的表单提交及OnceIO中接受GET

Node实现简单的表单+图片上传+路由

Node实现一个表单处理+图片上传功能,不是用express 1.使用formidable模块用于上传文件(图片)的处理.注意form表单要使用multipart/form-data属性. 2.使用chunk分段接收,原因是当接受了一小段,可能就给别人服务了.防止一个过大的表单阻塞了整个进程 3.上传上去的图片使用formidable自定义路径,用fs改名. 4.实现简单的路由. var http = require("http"); var querystring = require

基于Http原理实现Android的图片上传和表单提交

版权声明:本文由张坤  原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/794875001483009140 来源:腾云阁 https://www.qcloud.com/community 现在服务器主要是Web居多,客户端一般通过http上传文件到web服务器,最开始的设想很简单,直接将图片转化为字节流,写入到http的outstream,随后发送出去即可. 但当这种方法出现问题,服务器根据文件名这个表单中的字段来判定

Android Volley解析(二)之表单提交篇

上一篇文章中,讲了 Volley 的 get 和 post 请求,并且对 volley 的基本使用和基本分析做了讲解,而这篇 blog 将讲解用 volley 实现表单的提交,在看这篇文章之前,如果对 Volley 基本知识不够了解的朋友,可以移驾前往Android Volley解析(一)之GET.POST请求篇 表单提交的数据格式 要实现表单的提交,就要知道表单提交的数据格式是怎么样,这里我从某知名网站抓了一条数据,先来分析别人提交表单的数据格式. 数据包: Connection: keep-

驰骋工作流引擎ccflow-ccbpm工作流引擎sdk表单装载逻辑处理注意事项

cbpm工作流引擎sdk表单装载逻辑处理注意事项 关键字:驰骋工作流引擎 sdk表单 装载接口调用 说明:如果您要采用ccbpm的sdk表单开发,在表单 加载前您需要调用一个接口来获得当前节点的信息,调用这个接口还会处理一些业务逻辑. 调用的接口名称:BP.WF.Dev2Interface.SDK_Page_Init(long workid); 该接口处理的业务与作用:      1. 系统会处理一些业务,设置当前工作已经读取等等.      2. 会判断权限,当前人员是否可以打开当前的工作.

node进阶| 解决表单enctype="multipart/form-data" 时获取不到Input值的问题

今天在学习node踩到一个坑:form设置enctype="multipart/form-data"上传文件时,无法获取到表单其他input的值. 因为之前上传文件用的是 formidable  方法1:formidable (无法获取其他input的值) 引包 app.js var app = express(); var express = require("express");var router = require("./controller&qu

基于ligerUI+jbpm5自定义表单+Node.js的J2ee大型金融项目《财务预算系统》开发全程实录

基于ligerUI+jbpm5自定义表单+Node.js的J2ee大型金融项目<财务预算系统>开发全程实录 对这个课程感兴趣的可以加我雾非雾QQ2748165793, 讲师介绍: 3年对日外包电信行业软件专家,六年项目开发经验,二年高端培训机构教学管理经验,惠普全球研发中心骨干.现任北风金牌合作讲师. 项目经验丰富: 日本电信NTT DATA SYSTEM 日本航空ANA SYSTEM 日本TAHOO BB 在线信息平台 惠普DDC--InternalManagement SYSTEM(内部管

node.js表单——formidable/////z

node.js表单——formidable node处理表单请求,需要用到formidable包.安装formidable包的命令如下: npm install formidable 安装package的路径分为两种,一种是本地目录,一种是全局目录. npm install xxx -g 命令将模块下载安装到全局目录中. 全局目录可以通过 npm config set prefix "目录路径" 来设置. 通过 npm config get prefix 来获取当前设置的目录. npm

node.js表单——formidable

node处理表单请求,需要用到formidable包.安装formidable包的命令如下: npm install formidable 安装package的路径分为两种,一种是本地目录,一种是全局目录. npm install xxx -g 命令将模块下载安装到全局目录中. 全局目录可以通过 npm config set prefix "目录路径" 来设置. 通过 npm config get prefix 来获取当前设置的目录. npm install xxx ,则是将模块下载到