Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我试图写一个上传文件接口的node.js案列,结果得到了一个错误:?

我试图写一个上传文件接口的node.js案列,结果得到了一个错误:?

提问于 2023-08-03 18:06:35
回答 1关注 0查看 231

得到这个错误:

代码语言:js
AI代码解释
复制
TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined

这是我的html代码:

代码语言:js
AI代码解释
复制
<!DOCTYPE html>
<html>

<head>
    <title>文件上传</title>
</head>

<body>
    <input type="file" id="fileInput">
    <button onclick="uploadFile()">上传</button>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>
        function uploadFile() {
            const fileInput = document.getElementById('fileInput');
            const file = fileInput.files[0]; 
            const formData = new FormData();
            formData.append('file', file); 
            axios.post('http://localhost:8801/upload', 
            formData, {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }).then(response => {
                    console.log(response.data);
                })
                .catch(error => {
                    console.error(error);
                });
        }
    </script>
</body>

</html>

下面是node.js代码:

代码语言:js
AI代码解释
复制
const cors = require("cors")
const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const { log } = require("console");
const app = express();
app.use(cors())
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
  const file = req.file;
  //获取原始文件名
  const originFile = file.originalname;
  console.log(originFile);
  //将原始文件名进行分割获取文件名的后缀
  const fileExt = originFile.split(".")[1];
  console.log(fileExt)
  //拼接新的文件名 用时间戳的方式
  const newFileNmae = Date.now() + "." + fileExt;
  console.log(newFileNmae)
  const filePath = path.join(__dirname, 'uploads', newFileNmae);
  // 检查路径是否存在,如果不存在则创建路径
  const directory = path.dirname(filePath);
  if (!fs.existsSync(directory)) {
    fs.mkdirSync(directory, { recursive: true });
  }  // 将上传的文件写入指定路径
  fs.writeFile(filePath, file.buffer, (err) => {
    if (err) {
      console.error(err);
      res.status(500).send('文件上传失败');
    } else {
      res.send('文件上传成功');
    }
  });
});
app.listen(8801, () => {
  console.log('服务端已启动,监听端口 8801');
});

我使用的node.js版本:v18.17.0

用了cors express multer path fs等模块

回答 1

一凡sir

修改于 2023-08-05 01:33:59

错误信息打印的还是太少了。

node.js服务端是否有错误信息输出?

需要先核对下这里的file是否上传的是文件。

const fileInput = document.getElementById('fileInput');

const file = fileInput.files[0];const formData =newFormData();

formData.append('file', file);

和开发者交流更多问题细节吧,去 写回答
相关文章
《大胖 • 小课》- 写一个文件上传接口
这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第二节-《写一个文件上传接口》
zz_jesse
2020/03/17
5160
我找到了一个快速定位SpringBoot接口超时问题的神器!
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。 ---- 本文地址:https://juejin.cn/post/7140462361759973384 背景 公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。 最近在优化接口的响应时间,优化了代码之后,但是时
江南一点雨
2022/09/20
1.4K0
我找到了一个快速定位SpringBoot接口超时问题的神器!
java 上传文件接口_Java接口实现文件上传
因工作需要,在后台管理页面加入一个上传文件的模块,虽然接口的代码很简单,但实现期间遇到了一些比较有趣的坑,特记录下来。
全栈程序员站长
2022/08/28
3.5K0
通过Go写一个简易版的上传文件到存储的工具
一、场景说明在设计CICD流程中,需要将安卓的APK包上传到文件存储中去,然后将对应的下载链接发给产研、运营人员进行内部使用测试;之前我是通过Groovy实现将构建好的成品上传到私服中去的,后面业务全部迁移上云之后,就想着在将APK包直接上传到OSS存储中去,然后将生成的下载链接通过企业微信或者钉钉自动推送给相应的人员。项目地址:https://github.com/dqzboy二、实现方式创建子账号,获取子账号AccessKey创建Bucket,并授权OSS读写权限通过Go调用OSS-SDK进行实现文件的
浅时光博客
2022/09/12
1.1K0
通过Go写一个简易版的上传文件到存储的工具
写一个接口该注意什么?
小面学弟:小面,我刚学完springboot,我想写接口,在企业里面,到底是咋样的一个步骤啊?都要写一点什么?
灬沙师弟
2023/03/07
2110
写一个接口该注意什么?
使用NodeJS写一个简单的api接口
用Node.js实现一个HTTP服务器程序非常简单。我们实现一个最简单的Web程序, 它对于所有请求,都返回Hello world!,新建一个文件夹apiDemo 在里面新建一个server.js写入:
九旬
2020/10/23
4.1K0
使用NodeJS写一个简单的api接口
我为 Redis 找到了一个新家 —— VMWare
今天翻了一下Antirez早年的博客,发现了这样一篇介绍redis进展的好文章,写于2010年,居然长期以来都没有被翻译成中文,所以我就不客气了。故事发生在Redis红火不久,作者急切寻找一个靠谱的金主来支持Redis的可持续开发。
芋道源码
2018/10/25
4950
我为Redis找到了一个新家——VMWare
今天翻了一下Antirez早年的博客,发现了这样一篇介绍redis进展的好文章,写于2010年,居然长期以来都没有被翻译成中文,所以我就不客气了。
老钱
2018/08/14
3190
妹子让我看她写的pytest,结果...
陆陆续续断更好久好久了,这么久发生了很多事情,也思考了很多事情。突然发现拖延症已经严重影响到了我。
Python攻城狮
2020/12/21
9440
瞧瞧大佬写的接口,那叫一个优雅
前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用。 那么问题来了,如果设计一个优雅的API接口,能够满足:安全性、可重复调用、稳定性、好定位问题等多方面需求? 今天跟大家一起聊聊设计API接口时,需要注意的一些地方,希望对你会有所帮助。 1. 签名 为了防止API接口中的数据被篡改,很多时候我们需要对API接口做签名。 接口请求方将请求参数+时间戳+密钥拼接成一个字符串,然后通过md5等hash算法,生成一个前面sign。 然后在请求参数
程序员鱼皮
2023/03/29
6080
瞧瞧大佬写的接口,那叫一个优雅
一个简单易用的文件上传方案
现在 OSS 服务算是一个基础服务了,很多云服务厂商都有提供这样的服务,价格也不贵,松哥自己的 www.javaboy.org 用的就是类似的服务。 不过对于中小公司来说,除了购买 OSS 服务之外,也可以自己搭建专业的文件服务器,自己搭建专门的文件服务器的话,曾经比较专业的做法是 FastDFS,松哥之前也专门为之录过视频发在 B 站上,感兴趣的小伙伴可以自行查看。不过 FastDFS 搭建比较麻烦,非常容易出错,所以对各位小伙伴来说多多少少有一点门槛。 松哥在之前的文章录制的一些项目视频中,如果涉及到文
江南一点雨
2022/04/21
1.4K0
一个简单易用的文件上传方案
接口测试文件上传
在做接口测试的时候,往往会有需要文件上传的接口,今天教大家使用apipost接口测试工具和python+requests脚本进行接口测试。 一、使用python+requests python+requests进行文档上传的接口测试的时候,需要调用files,不过需要注意读取文件上传的时候描述路径的格式,因为window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用。 三种解决办法: 1.转义的方式 'd:\\img.jpg' 2.显式声明字符串不用转义 'd:r\img.jpg' 3.使用Linux的路径/ 'd:/img.jpg' python+requests接口测试脚本
zyf20010801
2022/06/16
1.1K0
写OC遇到的一个超级低级错误:
AppCode提示: class method is called from instance context.
望天
2018/12/25
7130
接口批量上传文件的实例
本人在做接口测试中,遇到一个活儿,将一批图片上传到服务器,12000+,在一个文件夹中不同的文件夹里面,由于上传文件过多,只能写脚本批量上传。也算是自动化的一部分吧,经过测试和改良,终于完成,期间由于种种原因失败60+次,做了第二次上传,分享代码,供大家参考。
FunTester
2019/10/15
1.8K0
我在大厂写React,学到了什么?
我工作中的技术栈主要是 React + TypeScript,这篇文章我想总结一下如何在项目中运用 React 的一些技巧解决一些实际问题,本文中使用的代码都是简化后的,不代表生产环境。生产环境的代码肯定比文中的例子要复杂很多,但是简化后的思想应该是相通的。
ssh_晨曦时梦见兮
2020/10/27
1.6K0
Java实现一个简单的文件上传案例
实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘中
一只胡说八道的猴子
2020/09/27
9780
Java实现一个简单的文件上传案例
我看到了一个很有意思的评论!
今年国庆,因为此起彼伏的疫情,只好选择待在成都。这几年国庆,从出国游变成国内游,从国内游变成省内游,今年变成市内游···
轩辕之风
2022/12/20
2750
我看到了一个很有意思的评论!
Python爬虫入门代码案列
什么是爬虫:爬虫又可以叫网络机器人,是模拟用户上网行为去爬去别人网站上的内容的一种程序或脚本。
Tommonkey
2023/02/25
8460
少写一个“;”,带来不一样的结果
今天下午用VB编写了一个程序,在form窗口上用双重循环、用“*”输出三角形(下图)
令仔很忙
2018/09/14
4340
少写一个“;”,带来不一样的结果
点击加载更多

相似问题

就这些每一个正则写一个表达式,并查询结果,怎么写???

1234

layui图片上传的一般处理程序接口怎么写?

097

SDK上传文件失败,就是安装api写的呀..?

1429

java接口如何写?

0215

TIONE部署deepseekAPI上传文件接口调用?

049
相关问答用户
擅长3个领域
萃橙科技 | 合伙人擅长4个领域
高级数据分析师擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档