node.js實現(xiàn)上傳文件功能
本文實例為大家分享了node.js上傳文件的具體代碼,供大家參考,具體內(nèi)容如下
最近剛開始弄nond,寫得不好見諒,有什么錯誤請指出:
首先安裝node,安裝步驟
這里以上傳圖片為例:
1、在該文件夾下生成package.json文件:
在本文件夾下打開命令行窗口(window系統(tǒng),進(jìn)入該文件夾按住shift然后點擊鼠標(biāo)右鍵,就可以直接選擇在本文件夾中打開命令行窗口)輸入:npm init
然后等有提示出來,一路Enter(懂的請無視,不懂且不想懂的一路Enter就是了),然后你就可以發(fā)現(xiàn)文件夾下有一個package.json文件,下面是剛生成的package.json文件內(nèi)容
這里因為要用到multer、express、fs模板,所以要安裝模塊,fs不需要安裝,可以直接引用:
安裝multer:npm install multer --save
安裝express:npm install express --save
然后你會發(fā)現(xiàn)你的文件夾下會多出一個node_modules文件,package.json里會多出這兩行:
2、創(chuàng)建app.js文件:
var express=require('express') var app=express() var multer=require('multer') var fs=require('fs') // var upload=multer({ dest: './tmp/' }) var createFolder = function(folder){ try{ fs.accessSync(folder); }catch(e){ fs.mkdirSync(folder); } }; var uploadFolder = './upload/'; createFolder(uploadFolder); // 通過 filename 屬性定制 var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, uploadFolder); // 保存的路徑,備注:需要自己創(chuàng)建 }, filename: function (req, file, cb) { // 將保存文件名設(shè)置為 字段名 + 時間戳,比如 logo-1478521468943 let suffix=file.mimetype.split('/')[1];//獲取文件格式 cb(null, file.fieldname + '-' + Date.now()+'.'+suffix); } }); // 通過 storage 選項來對 上傳行為 進(jìn)行定制化 var upload = multer({ storage: storage }) app.post('/profile',upload.single('file'),function(req,res,next){ //req.body contains the text fields console.log(req.file,'------',req.body,'-------',req.file.path); // res.end(req.file.buffer); // console.log(req.file.buffer.toString().length); res.end('ok'); }) app.listen(8081);
然后在命令行窗口繼續(xù)輸入:node app.js
點擊回車運行文件
前端的話剛好我這里有篇上傳圖片的小程序示例,可以測試使用
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南
這篇文章主要介紹了詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù)的方法
這篇文章主要介紹了手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07NodeJS鏈接MySql數(shù)據(jù)庫的操作方法
下面小編就為大家?guī)硪黄狽odeJS鏈接MySql數(shù)據(jù)庫的操現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06詳解通過源碼解析Node.js中cluster模塊的主要功能實現(xiàn)
這篇文章主要介紹了詳解通過源碼解析Node.js中cluster模塊的主要功能實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05nodejs文件實現(xiàn)打包成exe, 并設(shè)置開機自啟動的方法詳解(沒有黑窗口)
這篇文章主要介紹了nodejs文件實現(xiàn)打包成exe, 并設(shè)置開機自啟動的方法,結(jié)合實例形式分析了node.js使用pkg包實現(xiàn)生成exe可執(zhí)行文件的相關(guān)操作技巧,需要的朋友可以參考下2023-05-05NodeJS學(xué)習(xí)筆記之網(wǎng)絡(luò)編程
Node.js采用了Google Chrome瀏覽器的V8引擎,性能很好,同時還提供了很多系統(tǒng)級的API,如文件操作、網(wǎng)絡(luò)編程等。Node.js則是一個全面的后臺運行時,為Javascript提供了其他語言能夠?qū)崿F(xiàn)的許多功能。今天我們來看下Nodejs的網(wǎng)絡(luò)編程2014-08-08