[multer文檔](https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.md)
~~~
//引入這個中間件實現文件上傳
const multer = require('multer');
~~~
~~~
//file.html
<form action="http://localhost:8080/" method="post" enctype="multipart/form-data">
文件:<input type="file" name="file"/><br>
<input type="submit" value="上傳">
</form>
~~~
~~~
//file.js
const express = require("express");
const bodyParser = require('body-parser');
const multer = require('multer');
const fs = require('fs');
const pathLib= require('path');
//講文件放在這個路徑
var objMulter = multer({dest:'./www/assets/'});
const server = express();
// server.use(bodyParser.urlencoded({extended:false}))
server.use(objMulter.any());
server.post('/',function(req,res){
var newName = req.files[0].path+pathLib.extname(req.files[0].originalname);
fs.rename(req.files[0].path,newName,function(err){
if(err){
res.send("上傳失敗")
}else{
res.send('成功')
}
})
/* 1.獲取原始的擴展名
2.重命名
*/
})
server.listen(8080);
~~~
## 1.body-parser和multer的區別
~~~
body-parser 解析post的數據
multer 解析post文件
~~~
- body-parser
~~~
//表單的enctype值為以下的值,則用body-parser解析
<form action="" method="post"
enctype="application/x-www-form-urlencoded"></form>
//使用
server.use(bodyParser.urlencode({extended:false}));
//req.body讀取數據
~~~
- multer
~~~
//表單的enctype值為以下的值,則用multer解析
<form action="" method="post"
enctype="multipart/form-data"></form>
const pathLib = require('path');
//multer使用相對復雜
1.生成一個multerObj指定文件存放的地址
var multerObj = multer({dest:"./www/static"})
2.指定上傳的文件類型
server.use(multerObj.any());
3.req.files讀取數據
server.use(function(req,res){}
req.files[0].originalname //原始的文件名
req.files[0].path //文件路徑
//4.把文件擴展名加上
var newName = req.files[0].path+pathLib.extname(req.files[0].originalname);
//5.更改文件名
fs.rename(req.files[0].path,newName,function(err){
if(err){
res.send("上傳失敗")
}else{
res.send('成功')
}
})
)
~~~
- 0.簡介
- 0-1 應用場景
- 0-2 特點
- 0-3 目的
- 1.node
- 第一章 基礎語法
- 1-0 開發環境
- 1-1 簡單的請求響應
- 1-1-1 http
- 1-2 fs文件模塊
- 1-3 事件循環
- 1-3-1 extends
- 1-3-2 給事件處理程序傳參
- 1-3-3 once
- 1-3-4 removeEventListener
- 1-4 stream
- 1-5 global全局變量
- 1-6 process
- 1-7 debugger
- 1-8 querystring
- 1-9 url
- 1-9-1 實現一個簡單的表單
- 第二章 common-JS
- 1-1 requier規則
- 1-2 exports
- 第三章 基礎api
- 3-1 path
- 3-1-1 path
- 3-2 fs
- 3-2 serve-fs實現
- 3-3 http-get
- 3-3-1 http-url
- 3-4 http-post
- 3-4-1
- 第四章 進階
- 4-1 自定義模塊
- 第五章 ESlint
- 5-1 配置
- 第六章 handlebarjs
- 2.koa
- 第一章 起步
- 第二章 路由
- 第1節 get傳值及獲取
- 第2節 動態路由
- 3.異常
- 4.express
- 第一章 入門安裝環境配置
- 1-1 hello world
- 1-2 向前臺發送json
- 1-3 use,get,post
- 1-4 express.static
- 1-5 login功能
- 第二章 api
- 2-1 post數據解析
- 2-2 next鏈式操作
- 2-3 cookie
- 2-3-1 發送簽名的cookie
- 2-3-1 讀取簽名的cookie
- 2-4 session
- 2-4-1 總結
- 第三章 jade
- 3-1 安裝
- 3-2 使用
- 3-3 基礎語法
- 3-4 進階
- 3-4-1 模板中使用變量
- 3-4-2 -識別變量
- 3-4-3 for循環
- 3-4-4 if
- 3-4-5 !=原樣輸出html
- 3-4-6 case-when
- 3-4-7 html模板
- 第四章esj
- 4-1基本語法
- 4-2 進階
- 第五章 項目整合
- 5-1 文件上傳
- 5-2 解析get,post
- 5-3 consolidate
- 5-4 router路由
- 第六章 中間件
- 6-1 跨域
- 5.MySQL
- 5-1 基本
- 5-1-1 數據類型的分類
- 5-2 node操作mysql
- 5-2-1 node查詢數據庫
- 5-3 基本語法
- 5-3-1 增刪改查WHERE
- 5-3-2 ORDER排序
- 5-3-3 GROUP 聚類
- 1-1 DEMO
- 5-3-4 LIMIT-分頁
- 6.blog實現
- 6-0 數據字典的設計
- 6-1 讀取banner_talbe
- 7.教育網站
- 7-1 server.js模板
- linux命令
- 8.egg.js
- 8-1 起步