我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Golang如何从nodejs字节数组创建文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Golang如何从nodejs字节数组创建文件

php小编香蕉将为你介绍如何使用Golang从nodejs字节数组创建文件。在开发过程中,我们经常需要将字节数组保存为文件。使用Golang,我们可以轻松地完成这个任务。首先,我们需要将nodejs字节数组传输到Golang服务端。然后,使用Golang的io/ioutil包中的WriteFile函数将字节数组写入文件。通过这种简单的方法,我们可以实现从nodejs字节数组创建文件的功能。接下来,我们将详细解释这个过程的步骤和代码示例。让我们开始吧!

问题内容

我的go服务器通过post请求接收一个js数组,得到的数据是这样的

如何将其写入文件?

在node.js中我可以这样做:

fs.writeFile(`${dir}/${body.file_name}`, Buffer.from(body.file), { flag: "w" }, function (err) {
        if (err) {
            console.log(err);
            return res.status(200).json({ 'status': 'error' });
        }
        console.log(`file sucessfully saved to "${dir}${body.file_name}"`);
        return res.status(200).json({ 'status': 'ok' });
    });

解决方法

逐行翻译 go 会产生如下结果:

func handleincommingfile() http.handlerfunc {
    return func(w http.responsewriter, r *http.request) {
        if r.body == nil {
            log.println("body is empty")
            w.writeheader(http.statusbadrequest)
            w.write([]byte(`{ 'status': 'error' }`))
            return
        }

        body, err := io.readall(r.body)
        if err != nil {
            log.printf("reading body: %v", err)
            w.writeheader(http.statusinternalservererror)
            w.write([]byte(`{ 'status': 'error' }`))
            return
        }
        defer r.body.close()

        if err := os.writefile("path/to/filename.ext", body, 0644); err != nil {
            log.printf("writting content: %v", err)
            w.writeheader(http.statusinternalservererror)
            w.write([]byte(`{ 'status': 'error' }`))
            return
        }

        w.writeheader(http.statusok)
        w.write([]byte(`{ 'status': 'ok' }`))
    }
}

请注意,我根据错误上下文返回不同的 http 状态代码,并且缺少检查,例如文件是否已存在。

此外,我建议向处理程序注入存储服务以简化它并将文件创建逻辑移动到另一个包。

func handleIncommingFile(store storage.Manager)  http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        if err := store.Save(r.Body); err != nil {
            w.WriteHeader(http.StatusInternalServerError)
            return
        }
        w.WriteHeader(http.StatusOK)
// ...

这将帮助您测试处理程序和存储测试:)

以上就是Golang如何从nodejs字节数组创建文件的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Golang如何从nodejs字节数组创建文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang如何从nodejs字节数组创建文件

php小编香蕉将为你介绍如何使用Golang从nodejs字节数组创建文件。在开发过程中,我们经常需要将字节数组保存为文件。使用Golang,我们可以轻松地完成这个任务。首先,我们需要将nodejs字节数组传输到Golang服务端。然后,使
Golang如何从nodejs字节数组创建文件
2024-02-09

nodejs如何创建文件

这篇文章主要介绍了nodejs如何创建文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。nodejs创建文件的方法:首先创建一个前端示例文件;然后通过NodeJS中的fs核心
2023-06-06

nodejs如何创建文件并写入

这篇文章将为大家详细讲解有关nodejs如何创建文件并写入,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。nodejs创建文件并写入的方法:首先创建一个代码示例文件;然后通过“require(fs);”引入
2023-06-14

golang如何将字节数组转为string

今天小编给大家分享一下golang如何将字节数组转为string的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、字节数组转
2023-07-05

golang如何将字符串转为字节数组

这篇文章主要介绍“golang如何将字符串转为字节数组”,在日常操作中,相信很多人在golang如何将字符串转为字节数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”golang如何将字符串转为字节数组”的疑
2023-07-05

golang中如何将string转为字节数组

这篇“golang中如何将string转为字节数组”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“golang中如何将stri
2023-07-05

vb控件数组如何创建

在VB中,可以使用Array控件来创建控件数组。以下是一个示例:1. 首先,在窗体上放置一个控件,例如按钮(Button)。2. 选中该按钮控件,然后在属性窗格中找到Name属性,将其更改为"btnArray"。3. 在代码中声明一个控件数
2023-09-15

如何创建Vue.js中的单文件组件

Vue.js作为一种著名的JavaScript框架,使开发人员能够轻松创建前端应用。 在Vue.js中,单文件组件至关重要,以便在组织和维护代码方面提高其效率。在本文中,我们将探讨如何创建Vue.js中的单文件组件。什么是单文件组件?Vue.js中的单文件组件将HTML,CSS和JavaScript合并到一个文件中。这样,开发人员可以轻松组织代码并减少更新代码的时间。Vue.j
2023-05-14

如何使用 Golang 创建和管理文件?

go 语言中创建和管理文件的步骤:使用 os.create 函数创建文件。使用 os.open 函数打开文件。使用 file 对象的 writestring 方法写文件。使用 io.readall 函数读文件。使用 os.remove 函数
如何使用 Golang 创建和管理文件?
2024-05-15

matlab如何创建函数文件

要在MATLAB中创建函数文件,您需要按照以下步骤操作:1. 打开MATLAB编辑器:在MATLAB命令窗口中输入“edit”命令,将打开MATLAB编辑器。2. 在编辑器中创建新文件:在编辑器窗口中,选择“文件”>“新建”>“函数”选项,
2023-10-10

如何从另一个数组的扩展创建内联数组

php小编柚子今天为大家介绍一种在PHP中创建内联数组的方法,即通过扩展另一个数组来快速构建。这种方法可以让我们更高效地创建和组织数组,提高代码的可读性和可维护性。本文将详细解释如何使用这种方法,并提供一些实际应用的示例,帮助读者更好地理解
如何从另一个数组的扩展创建内联数组
2024-02-10

如何在Golang中创建和初始化数组

如何在Golang中创建和初始化数组在Golang中,数组是一个固定长度的数据结构,用于存储相同类型的元素。数组的长度在创建时就确定了,无法动态改变。本文将介绍如何在Golang中创建和初始化数组,以及一些常用的数组操作方法。创建数组
如何在Golang中创建和初始化数组
2024-03-02

如何使用golang中的os.Mkdir函数创建新文件夹

如何使用golang中的os.Mkdir函数创建新文件夹概述:在golang中,我们可以使用os.Mkdir函数来创建新的文件夹。该函数接受一个路径作为参数,并将在指定路径下创建一个新的文件夹。本文将详细介绍如何使用该函数,并提供相应的代码
如何使用golang中的os.Mkdir函数创建新文件夹
2023-11-18

如何使用golang中的io/ioutil.TempFile函数创建临时文件

如何使用golang中的io/ioutil.TempFile函数创建临时文件在许多编程语言中,我们经常需要创建临时文件来存储临时数据或进行一些临时操作。在Golang中,我们可以使用io/ioutil包中的TempFile函数来创建临时文件
如何使用golang中的io/ioutil.TempFile函数创建临时文件
2023-11-18

如何使用FileReader创建Vue文件阅读器组件

这篇文章主要介绍“如何使用FileReader创建Vue文件阅读器组件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用FileReader创建Vue文件阅读器组件”文章能帮助大家解决问题。Fi
2023-07-04

如何使用golang中的os.Link函数创建文件的硬链接

如何使用golang中的os.Link函数创建文件的硬链接在操作系统中,硬链接是指一个文件被多个文件名所指向。当一个文件有多个文件名时,它们都指向同一个i节点(inode),即它们共享相同的数据块。在Golang中,我们可以使用os.Lin
如何使用golang中的os.Link函数创建文件的硬链接
2023-11-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录