node+express+ multer 实现文件上传入门

简介: node+express+ multer 实现文件上传入门

文件上传

文件上传需要借助一个中间件 multer 
因此我们需要安装 cnpm install multer --save

前端界面

在express创建的项目下的 public/upload目录下创建 indexfileupload.html
如果你没有需要进行创建对应的文件
然后再地址栏输出  http://127.0.0.1:666/upload/indexfileupload.html
可以显示下下面对应的界面

indexfileupload.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文件上传</title>
</head>
<body>
  <form action="/upload/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="logo2"> <br />
    <input type="submit" value="文件上传">
  </form>
</body>
</html>

indexfileupload.html文件的注意点

1===》action="/upload/upload" 表示的是接口地址。
因为这里前后端没有分离,因此不需要写最前面的地址
2==》method="post" 表示的是请求的方式
3==》enctype="multipart/form-data" 文件上传的固定格式
4==》<input type="file" name="logo2">  中的file表示文件。
name="logo2"  需要与 后端的 upload.single('name') 与之对应
router.post('/upload', upload.single('logo2'), (req,res) => {
  var file = req.file
  res.send({ code:'0', msg:'上传成功'})
})

后端代码-在routes目录下创建 fileupload.js文件

var express = require('express')
var router = express.Router()
// 引入文件模块
var fs = require('fs')
// 引入路径模块
var path = require('path')
// 后端处理文件的模块
var multer=require('multer')
// 配置路径和文件名
var storage = multer.diskStorage({
  //上传文件到服务器的存储位置
  destination: 'public/upload',
  filename: function (req, file, callback) {
    console.log('file', file) //上传的文件信息
    var fileFormat = (file.originalname).split('.')
    var filename = new Date().getTime()
    callback(null, filename+"."+fileFormat[fileFormat.length-1])
  }
})
var upload = multer({
  storage
})
//接口
router.post('/upload', upload.single('logo2'), (req,res) => {
  var file = req.file
  res.send({ code:'0', msg:'上传成功'})
})
//导出
module.exports = router;

在app.js中注册使用路由

// 引入
var uploadRouter = require('./routes/fileupload');
//使用
app.use('/upload', uploadRouter);
在浏览器中输入http://127.0.0.1:666/upload/indexfileupload.html
然后选择对应的文件,然后点击文件上传按钮,就可以实现文件上传成功了

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。

相关文章
|
19天前
|
开发框架 JavaScript 中间件
node+express搭建服务器环境
node+express搭建服务器环境
node+express搭建服务器环境
|
15天前
|
开发框架 JavaScript 前端开发
【Node系列】Express 框架
Express.js 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,提供一系列强大的特性来帮助你创建各种 web 和移动设备应用。
33 2
|
1月前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express构建RESTful API
使用Node.js和Express构建RESTful API
19 0
|
2月前
|
开发框架 JavaScript 前端开发
比较两个突出的node.js框架:koa和express
接上文讲述了 koa框架,这边文章比较一下这两个突出的node.js框架:koa和express
|
3月前
|
JSON JavaScript 前端开发
超级实用!详解Node.js中的util模块和express模块
超级实用!详解Node.js中的util模块和express模块
|
4月前
|
开发框架 JSON JavaScript
Node.js教程-express框架
Node.js教程-express框架
39 1
|
5月前
|
开发工具 git
如何运行github上面的node+express项目
如何运行github上面的node+express项目
96 0
|
5月前
|
开发框架 NoSQL JavaScript
mongoDB入门教程四:安装Node+express环境支撑
mongoDB入门教程四:安装Node+express环境支撑
50 0
|
7月前
|
JSON JavaScript 中间件
node.js中Express框架路由,中间件
node.js中Express框架路由,中间件
|
7月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
459 0