node+axios实现服务端文件上传示例

 更新时间:2022年06月28日 08:34:03   作者:天问  
这篇文章主要介绍了node+axios实现服务端文件上传示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

最近调研企业wx集成H5应用,其中有一个发送图文消息,需要上传图片到临时素材库。之前做过文件上传到阿里云、七牛云都是服务端提供封装好的文件上传接口,在客户端使用ajax的方式上传。所以就来踩踩坑,使用node+axios实现服务端文件上传。

一、接口文档介绍

请求方式:POST(HTTPS)

请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE

  • 使用multipart/form-data POST上传文件, 文件标识名为”media”。
  • POST的请求包中,form-data中媒体文件标识,应包含有 filename、filelength、content-type等信息。
  • 参数说明:
参数必须说明
access_token调用接口凭证
type媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)

二、文件上传

2-1.初始化项目

# 创建目录
mkdir upload-demo
# 进入upload-demo目录
cd upload-demo
# npm 初始化
npm init -y
# 创建app.js
touch app.js

2-2.安装插件依赖

axios:是一个基于 promiseHTTP 库,可以用在客户端浏览器和服务端node.js 中。

form-data:是创建可读multipart/form-data流的库。可用于向其他 Web 应用程序提交表单和文件上传。

npm i -S axios form-data

2-3.上传核心代码

// app.js
const fs = require('fs')
const FormData = require('form-data')
const axios = require('axios')
;(()=>{
    let formData = new FormData();
    let imgFiles = fs.createReadStream('./test.jpg')    // 根目录下需要有一个test.jpg文件
    formData.append('media', imgFiles);
    axios({
        url: 'https://qyapi.weixin.qq.com/cgi-bin/media/upload',
        method: 'POST',
        params: {
            access_token: 'ACCESS_TOKEN',   // ACCESS_TOKEN 需要替换为真实 token
            type: 'image',   // 这里以上图片为例
        },
        data: formData,
        headers: {
            'Content-Type': 'multipart/form-data', // 必须要设置
        },
    }).then(res=>{
        console.log(res.data)
    })
})();

2-4.执行脚本

node app.js

不出意外会输入以下内容:

{
   "errcode": 0,
   "errmsg": "",
   "type": "image",
   "media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
   "created_at": "1380000000"
}

其中media_id就是上传到素材库的媒体文件唯一标识,发送图文消息时需要用到。

以上就是node+axios实现服务端文件上传示例的详细内容,更多关于node+axios服务端文件上传的资料请关注脚本之家其它相关文章!

相关文章

  • nodejs版本过高导致vue2版本的项目无法正常启动的解决方案

    nodejs版本过高导致vue2版本的项目无法正常启动的解决方案

    这篇文章主要给大家介绍了关于nodejs版本过高导致vue2版本的项目无法正常启动的解决方案,本文小编给大家详细介绍了如何解决这个问题,如有遇到同样问题的朋友可以参考下
    2023-11-11
  • Node.js常用三大模块之path模块

    Node.js常用三大模块之path模块

    在node.js中常用的三大模块中还有一个是path模块,主要是为了便利用户处理路径问题,如果我们在引入文件的时候经常会受到../和./的干扰,那么这个path模块将会很好的帮助你
    2022-09-09
  • node.js中的fs.symlinkSync方法使用说明

    node.js中的fs.symlinkSync方法使用说明

    这篇文章主要介绍了node.js中的fs.symlinkSync方法使用说明,本文介绍了fs.symlinkSync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Nodejs异步流程框架async的方法

    Nodejs异步流程框架async的方法

    这篇文章主要介绍了Nodejs异步流程框架async的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • 利用Node.js+Koa框架实现前后端交互的方法

    利用Node.js+Koa框架实现前后端交互的方法

    这篇文章主要给大家介绍了利用Node.js+Koa框架实现前后端交互的方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起学习学习吧。
    2017-02-02
  • Node.js创建子进程的几种实现方式

    Node.js创建子进程的几种实现方式

    这篇文章主要介绍了Node.js创建子进程的几种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 如何从0开始用node写一个自己的命令行程序

    如何从0开始用node写一个自己的命令行程序

    这篇文章主要介绍了如何从0开始用node写一个自己的命令行程序,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • NodeJS项目如何打包成可执行文件

    NodeJS项目如何打包成可执行文件

    这篇文章主要介绍了NodeJS项目如何打包成可执行文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • node错误处理与日志记录的实现

    node错误处理与日志记录的实现

    这篇文章主要介绍了node错误处理与日志记录的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • nodejs 全局变量和全局对象知识点及用法详解

    nodejs 全局变量和全局对象知识点及用法详解

    在本篇文章里小编给大家整理的是一篇关于nodejs 全局变量和全局对象知识点及用法等内容,对此有兴趣的朋友们可以学习参考下。
    2021-12-12

最新评论