node编写文件上传的接口的坑如何解决(node,开发技术)

时间:2024-04-30 08:25:11 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

node编写文件上传接口的坑

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

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

在app.js引入,进行路由

控制器代码:

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

路由代码

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

然后就完美解决

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

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

需要

node-express框架

constmulter=require('multer');constfs=require('fs')constpath=require('path')

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

步骤和代码

完整代码

constmulter=require('multer');constfs=require('fs')constpath=require('path')module.exports=(app)=>{letupload=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){returnres.send('上传失败')}//如果读取成功//声明图片名字为时间戳和随机数拼接成的,尽量确保唯一性lettime=Date.now()+parseInt(Math.random()*999)+parseInt(Math.random()*2222);//拓展名letextname=req.file.mimetype.split('/')[1]//拼接成图片名letkeepname=time+'.'+extname//三个参数//1.图片的绝对路径//2.写入的内容//3.回调函数fs.writeFile(path.join(__basename,'/public/img/'+keepname),data,(err)=>{if(err){returnres.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){returnres.send('写入失败')}

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

//headletexpress=require('express')letrouter=require('/yourrouterpath')constapp=express()...//mainrouter(app)//otherapp.use((req,res)=>{res.status(404).send('没有找到资源')})app.listen(8080)
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:node编写文件上传的接口的坑如何解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Mybatis条件if test怎么使用枚举值下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18