欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于node編寫文件上傳的接口的坑及解決

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

node編寫文件上傳接口的坑

今天沒事在寫node的接口時(shí)候用到文件上傳的接口給前端,不知道用中間件好一點(diǎn),然后就找度娘,網(wǎng)上都是koa-body中間件,但是那個(gè)自己測試?yán)鲜墙邮詹坏絺鬟^來的文件file的值,然后換另一種就是koa-multer 完美解決。

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

在app.js引入,進(jìn)行路由

控制器代碼:

路由代碼

然后就完美解決

node(express)圖片上傳接口寫法

作為一名接口調(diào)用師,今天我們來用node寫一個(gè)圖片上傳的接口。。。

需要

node-express框架

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

需要的三個(gè)模塊,一個(gè)是文件上傳的接口一個(gè)是文件讀取的模塊,一個(gè)是路徑設(shè)置的模塊。

步驟和代碼

完整代碼

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í)間戳和隨機(jī)數(shù)拼接成的,盡量確保唯一性
? ? ? ? ? ? let time = Date.now() + parseInt(Math.random() * 999) + parseInt(Math.random() * 2222);
? ? ? ? ? ? //拓展名
? ? ? ? ? ? let extname = req.file.mimetype.split('/')[1]
? ? ? ? ? ? ? ? //拼接成圖片名
? ? ? ? ? ? let keepname = time + '.' + extname
? ? ? ? ? ? ? ? //三個(gè)參數(shù)
? ? ? ? ? ? ? ? //1.圖片的絕對路徑
? ? ? ? ? ? ? ? //2.寫入的內(nèi)容
? ? ? ? ? ? ? ? //3.回調(diào)函數(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('讀取失敗')}
})
//一個(gè)是讀取部分一個(gè)是寫入部分,主要就這兩部分。
fs.writeFile(path.join(__basename, '/public/img/' + keepname), data, (err) => {
? ? ? ? ? ? ? ? if (err) { return res.send('寫入失敗') }

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

//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)

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

相關(guān)文章

  • Node.js入門筆記?之a(chǎn)sync模塊

    Node.js入門筆記?之a(chǎn)sync模塊

    這篇文章主要介紹了Node.js入門筆記?之a(chǎn)sync模塊,async是一個(gè)異步處理模塊,主要有三個(gè)方式:串行無關(guān)聯(lián)、并行無關(guān)聯(lián)?、串行有關(guān)聯(lián),文章圍繞主題展開更多的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06
  • 了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互

    了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互

    這篇文章主要介紹了了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互,需要的朋友可以參考下
    2014-12-12
  • 使用nodejs?+?koa?+?typescript?集成和自動重啟的問題

    使用nodejs?+?koa?+?typescript?集成和自動重啟的問題

    這篇文章主要介紹了nodejs?+?koa?+?typescript?集成和自動重啟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • nodejs?實(shí)現(xiàn)簡單的文件上傳功能(示例詳解)

    nodejs?實(shí)現(xiàn)簡單的文件上傳功能(示例詳解)

    這篇文章主要介紹了nodejs?實(shí)現(xiàn)簡單的文件上傳功能,文件上傳方式分為三種,本文通過實(shí)例代碼給大家詳細(xì)介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Node.js API詳解之 vm模塊用法實(shí)例分析

    Node.js API詳解之 vm模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 vm模塊用法,結(jié)合實(shí)例形式分析了Node.js API中vm模塊基本功能、函數(shù)、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • node.js中express中間件body-parser的介紹與用法詳解

    node.js中express中間件body-parser的介紹與用法詳解

    這篇文章主要給大家介紹了關(guān)于node.js中express中間件body-parser的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • 在Node.js應(yīng)用中使用Redis的方法簡介

    在Node.js應(yīng)用中使用Redis的方法簡介

    這篇文章主要介紹了在Node.js應(yīng)用中使用Redis的方法,最簡單的數(shù)據(jù)讀寫操作相關(guān),需要的朋友可以參考下
    2015-06-06
  • 使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目

    使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目

    這篇文章介紹了使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • 簡單談?wù)刵ode.js 版本控制 nvm和 n

    簡單談?wù)刵ode.js 版本控制 nvm和 n

    大量開發(fā)者的貢獻(xiàn)使Node版本的迭代速度很快,版本很多(橫跨0.6到0.11),所以升級Node版本就成為了一個(gè)問題。目前有n和nvm這兩個(gè)工具可以對Node進(jìn)行無痛升級,本文簡單介紹一下二者的使用。
    2015-10-10
  • 詳解Node.js讀寫中文內(nèi)容文件操作

    詳解Node.js讀寫中文內(nèi)容文件操作

    在本篇文章中我們給大家分享了關(guān)于Node.js讀寫中文內(nèi)容文件操作的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-10-10

最新評論