最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于node編寫文件上傳的接口的坑及解決

 更新時間:2022年06月06日 17:12:39   作者:小碼家  
這篇文章主要介紹了關于node編寫文件上傳的接口的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

node編寫文件上傳接口的坑

今天沒事在寫node的接口時候用到文件上傳的接口給前端,不知道用中間件好一點,然后就找度娘,網(wǎng)上都是koa-body中間件,但是那個自己測試老是接收不到傳過來的文件file的值,然后換另一種就是koa-multer 完美解決。

首先是在這里插入代碼片npm i koa-multer

在app.js引入,進行路由

控制器代碼:

路由代碼

然后就完美解決

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('上傳失敗') }
? ? ? ? ? ? //如果讀取成功
? ? ? ? ? ? //聲明圖片名字為時間戳和隨機數(shù)拼接成的,盡量確保唯一性
? ? ? ? ? ? let time = Date.now() + parseInt(Math.random() * 999) + parseInt(Math.random() * 2222);
? ? ? ? ? ? //拓展名
? ? ? ? ? ? let extname = req.file.mimetype.split('/')[1]
? ? ? ? ? ? ? ? //拼接成圖片名
? ? ? ? ? ? let keepname = time + '.' + extname
? ? ? ? ? ? ? ? //三個參數(shù)
? ? ? ? ? ? ? ? //1.圖片的絕對路徑
? ? ? ? ? ? ? ? //2.寫入的內容
? ? ? ? ? ? ? ? //3.回調函數(shù)
? ? ? ? ? ? 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('寫入失敗') }

如果有和我一樣在學習的入門小伙伴,希望你知道在自己的入口文件里面在中間件寫完后使用這兩段代碼,懂得都懂

//head
let express =require('express')
let router =require('/your router path')
const app =express()
...
//main
router(app)
//other
? ? app.use((req, res) => {
? ? res.status(404).send('沒有找到資源')
})
app.listen(8080)

大概這個意思了。以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

禄丰县| 博爱县| 长沙市| 兴国县| 锦州市| 永修县| 于都县| 潜江市| 双桥区| 永胜县| 赤壁市| 永定县| 武义县| 泽州县| 大方县| 黄梅县| 迁安市| 成都市| 昂仁县| 洛扎县| 德江县| 翁源县| 白水县| 诸暨市| 思茅市| 九龙坡区| 滨海县| 达州市| 黎川县| 永平县| 新郑市| 思南县| 岚皋县| 内黄县| 儋州市| 项城市| 兴安盟| 澜沧| 忻州市| 连南| 车致|