Form-Data 库使用详解
Form-Data 是一个用于创建可读的 "multipart/form-data" 流的库,可以用来向其他网络应用程序提交表单和文件上传。本文将详细介绍如何安装和使用 Form-Data 库,以及如何使用其 API。
1. 安装指南
首先,您需要使用 npm 来安装 Form-Data 库。在命令行中运行以下命令:
npm install --save form-data
2. 项目使用说明
Form-Data 库的使用非常简单。以下是一个例子,展示如何构造一个包含字符串、缓冲区和文件流的表单:
var FormData = require('form-data');
var fs = require('fs');
var form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
您还可以使用 HTTP 响应流:
var FormData = require('form-data');
var http = require('http');
var form = new FormData();
http.request('http://nodejs.org/images/logo.png', function(response) {
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_logo', response);
});
或者使用 @mikeal 的 request 库流:
var FormData = require('form-data');
var request = require('request');
var form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_logo', request('http://nodejs.org/images/logo.png'));
要将表单提交给网络应用程序,请调用 submit(url, [callback]) 方法:
form.submit('http://example.org/', function(err, res) {
// res – 响应对象 (http.IncomingMessage)
res.resume();
});
3. 项目API使用文档
Form-Data 提供了多种方法和选项,以下是一些常用方法的说明:
append(field, value, [options])
向表单添加数据。可以提交几乎任何格式(字符串、整数、布尔值、缓冲区等)。但是,数组需要用户转换为字符串。
var form = new FormData();
form.append('my_string', 'my value');
form.append('my_integer', 1);
form.append('my_boolean', true);
form.append('my_buffer', new Buffer(10));
form.append('my_array_as_json', JSON.stringify(['bird', 'cute']));
可以为选项提供一个字符串或一个对象。
// 通过为选项提供字符串来设置文件名
form.append('my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg');
// 提供一个对象
form.append('my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806});
getHeaders([userHeaders])
此方法将正确的 content-type 头添加到提供的 userHeaders 数组中。
getBoundary()
返回表单数据的边界字符串。
setBoundary(boundary)
设置边界字符串,覆盖上述默认行为。
注意:边界必须唯一,且不得出现在数据中。
getBuffer()
返回完整的表单数据请求包,作为 Buffer。您可以将此 Buffer 插入 Axios 等库以发送多部分数据。
getLengthSync()
与 getLength 相同,但是同步。
注意:getLengthSync 不 计算流的长度。
getLength(callback)
异步返回 Content-Length。回调用于处理错误并在长度计算完成后继续。
hasKnownLength()
检查是否知道添加的值的长度。
submit(params, callback)
将表单提交给网络应用程序。
toString()
返回表单数据作为字符串。如果发送文件或缓冲区,请使用 getBuffer()。
4. 项目安装方式
Form-Data 库的安装方式已在第一部分“安装指南”中说明,使用 npm 命令安装即可。
以上是 Form-Data 库的详细使用说明和 API 文档。希望这些信息对您有所帮助。
AutoGLM-Phone-9BAutoGLM-Phone-9B是基于AutoGLM构建的移动智能助手框架,依托多模态感知理解手机屏幕并执行自动化操作。Jinja00
Kimi-K2-ThinkingKimi K2 Thinking 是最新、性能最强的开源思维模型。从 Kimi K2 开始,我们将其打造为能够逐步推理并动态调用工具的思维智能体。通过显著提升多步推理深度,并在 200–300 次连续调用中保持稳定的工具使用能力,它在 Humanity's Last Exam (HLE)、BrowseComp 等基准测试中树立了新的技术标杆。同时,K2 Thinking 是原生 INT4 量化模型,具备 256k 上下文窗口,实现了推理延迟和 GPU 内存占用的无损降低。Python00
GLM-4.6V-FP8GLM-4.6V-FP8是GLM-V系列开源模型,支持128K上下文窗口,融合原生多模态函数调用能力,实现从视觉感知到执行的闭环。具备文档理解、图文生成、前端重构等功能,适用于云集群与本地部署,在同类参数规模中视觉理解性能领先。Jinja00
HunyuanOCRHunyuanOCR 是基于混元原生多模态架构打造的领先端到端 OCR 专家级视觉语言模型。它采用仅 10 亿参数的轻量化设计,在业界多项基准测试中取得了当前最佳性能。该模型不仅精通复杂多语言文档解析,还在文本检测与识别、开放域信息抽取、视频字幕提取及图片翻译等实际应用场景中表现卓越。00
GLM-ASR-Nano-2512GLM-ASR-Nano-2512 是一款稳健的开源语音识别模型,参数规模为 15 亿。该模型专为应对真实场景的复杂性而设计,在保持紧凑体量的同时,多项基准测试表现优于 OpenAI Whisper V3。Python00
GLM-TTSGLM-TTS 是一款基于大语言模型的高质量文本转语音(TTS)合成系统,支持零样本语音克隆和流式推理。该系统采用两阶段架构,结合了用于语音 token 生成的大语言模型(LLM)和用于波形合成的流匹配(Flow Matching)模型。 通过引入多奖励强化学习框架,GLM-TTS 显著提升了合成语音的表现力,相比传统 TTS 系统实现了更自然的情感控制。Python00
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00