node.js實(shí)現(xiàn)上傳文件功能
本文實(shí)例為大家分享了node.js上傳文件的具體代碼,供大家參考,具體內(nèi)容如下
最近剛開始弄nond,寫得不好見諒,有什么錯(cuò)誤請(qǐng)指出:
首先安裝node,安裝步驟
這里以上傳圖片為例:
1、在該文件夾下生成package.json文件:
在本文件夾下打開命令行窗口(window系統(tǒng),進(jìn)入該文件夾按住shift然后點(diǎn)擊鼠標(biāo)右鍵,就可以直接選擇在本文件夾中打開命令行窗口)輸入:npm init
然后等有提示出來,一路Enter(懂的請(qǐng)無視,不懂且不想懂的一路Enter就是了),然后你就可以發(fā)現(xiàn)文件夾下有一個(gè)package.json文件,下面是剛生成的package.json文件內(nèi)容

這里因?yàn)橐玫絤ulter、express、fs模板,所以要安裝模塊,fs不需要安裝,可以直接引用:
安裝multer:npm install multer --save
安裝express:npm install express --save
然后你會(huì)發(fā)現(xiàn)你的文件夾下會(huì)多出一個(gè)node_modules文件,package.json里會(huì)多出這兩行:

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è)置為 字段名 + 時(shí)間戳,比如 logo-1478521468943
let suffix=file.mimetype.split('/')[1];//獲取文件格式
cb(null, file.fieldname + '-' + Date.now()+'.'+suffix);
}
});
// 通過 storage 選項(xiàng)來對(duì) 上傳行為 進(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
點(diǎn)擊回車運(yùn)行文件
前端的話剛好我這里有篇上傳圖片的小程序示例,可以測(cè)試使用
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南
這篇文章主要介紹了詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù)的方法
這篇文章主要介紹了手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
NodeJS鏈接MySql數(shù)據(jù)庫的操作方法
下面小編就為大家?guī)硪黄狽odeJS鏈接MySql數(shù)據(jù)庫的操現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
詳解通過源碼解析Node.js中cluster模塊的主要功能實(shí)現(xiàn)
這篇文章主要介紹了詳解通過源碼解析Node.js中cluster模塊的主要功能實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
nodejs文件實(shí)現(xiàn)打包成exe, 并設(shè)置開機(jī)自啟動(dòng)的方法詳解(沒有黑窗口)
這篇文章主要介紹了nodejs文件實(shí)現(xiàn)打包成exe, 并設(shè)置開機(jī)自啟動(dòng)的方法,結(jié)合實(shí)例形式分析了node.js使用pkg包實(shí)現(xiàn)生成exe可執(zhí)行文件的相關(guān)操作技巧,需要的朋友可以參考下2023-05-05
NodeJS學(xué)習(xí)筆記之網(wǎng)絡(luò)編程
Node.js采用了Google Chrome瀏覽器的V8引擎,性能很好,同時(shí)還提供了很多系統(tǒng)級(jí)的API,如文件操作、網(wǎng)絡(luò)編程等。Node.js則是一個(gè)全面的后臺(tái)運(yùn)行時(shí),為Javascript提供了其他語言能夠?qū)崿F(xiàn)的許多功能。今天我們來看下Nodejs的網(wǎng)絡(luò)編程2014-08-08

