文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

node编写文件上传的接口的坑如何解决

2023-07-01 05:38

关注

这篇“node编写文件上传的接口的坑如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node编写文件上传的接口的坑如何解决”文章吧。

node编写文件上传接口的坑

今天没事在写node的接口时候用到文件上传的接口给前端,不知道用中间件好一点,然后就找度娘,网上都是koa-body中间件,但是那个自己测试老是接收不到传过来的文件file的值,然后换另一种就是koa-multer 完美解决。

首先是在这里插入代码片npm i koa-multer

在app.js引入,进行路由

控制器代码:

node编写文件上传的接口的坑如何解决

路由代码

node编写文件上传的接口的坑如何解决

然后就完美解决

node(express)图片上传接口写法

作为一名接口调用师,今天我们来用node写一个图片上传的接口。。。

需要

node-express框架

const multer = require('multer');const fs = require('fs')const path = require('path')

需要的三个模块,一个是文件上传的接口一个是文件读取的模块,一个是路径设置的模块。

步骤和代码

完整代码

const multer = require('multer');const fs = require('fs')const path = require('path')module.exports = (app) => {    let upload = multer({ dest: 'uploads/' })    app.post('/img', upload.single('test'),             function(req, res, next) {        //读取文件路径(uploads/文件夹下面的新建的图片地址)        console.log(req.file);        fs.readFile(req.file.path, (err, data) => {            //如果读取失败            if (err) { return res.send('上传失败') }            //如果读取成功            //声明图片名字为时间戳和随机数拼接成的,尽量确保唯一性            let time = Date.now() + parseInt(Math.random() * 999) + parseInt(Math.random() * 2222);            //拓展名            let extname = req.file.mimetype.split('/')[1]                //拼接成图片名            let keepname = time + '.' + extname                //三个参数                //1.图片的绝对路径                //2.写入的内容                //3.回调函数            fs.writeFile(path.join(__basename, '/public/img/' + keepname), data, (err) => {                if (err) { return res.send('写入失败') }                res.send({ err: 0, msg: '上传ok', data: '/public/img/' + keepname })            });        });    });}

代码分解

fs.readFile(req.file.path, (err, data)=>{    if(err){res.send('读取失败')}})//一个是读取部分一个是写入部分,主要就这两部分。fs.writeFile(path.join(__basename, '/public/img/' + keepname), data, (err) => {                if (err) { return res.send('写入失败') }

如果有和我一样在学习的入门小伙伴,希望你知道在自己的入口文件里面在中间件写完后使用这两段代码,懂得都懂

//headlet express =require('express')let router =require('/your router path')const app =express()...//mainrouter(app)//other    app.use((req, res) => {    res.status(404).send('没有找到资源')})app.listen(8080)

以上就是关于“node编写文件上传的接口的坑如何解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯