node+express+mysql实现服务端文件上传功能

本文针对初学者,介绍了如何使用Node.js、Express和MySQL搭建服务端文件上传功能。通过设置服务、安装所需插件、配置路由和数据库连接,实现了文件上传并更新数据库。上传的文件会存储在upload文件夹,数据库也会记录相关信息。
摘要由CSDN通过智能技术生成

前言

由于是新手,花费了不少时间,现在走通没有问题,所以要是大佬路过,请多多指导,本文主要对初入node不久的新手准备的,如有问题,欢迎留言互相学习

首先通过 express 起服务

//server.js
const express=require('express');
const static=require('express-static');
const bodyParser=require('body-parser');
const multer=require('multer');
const multerObj=multer({
   dest: './static/upload'});
const cookieParser=require('cookie-parser');
const cookieSession=require('cookie-session');
const consolidate=require('consolidate');
var server=express();
server.listen(8090);
//1.获取请求数据
//get自带
server.use(bodyParser.urlencoded());
server.use(multerObj.any());
//cors跨域设置
server.all('*',function (req, res, next) {
   
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
  res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
  if (req.method == 'OPTIONS') {
   
    res.send(200); //让options请求快速返回/
  }
  else {
   
    next();
  }
});
//2.route
server.use('/upToImg1/', require('./route/upToImg1')());
//3.default:static
server.use('/',static('./static'));
server.use('/files',static('./static'));

安装需要的插件或三方中间件,本文是结合 mysql 数据库实现文件上传,所以得提前配好mysql并通过 npm install mysql 进行安装

注意:大家看到上面的multer插件了吧,这个插件就是控制文件上传的,dest配置上传路径,我这里图方便就在全局使用上传功能(.any())了,这样会导致有恶意传送文件到其它路由的情况,所以建议大家最好把此插件写到特定路由以使用
这里贴一张multer的使用方法:
在这里插入图片描述

//package.json
{
   
  "devDependencies": {
   
    "body-parser": "^1.17.1",
    "consolidate": "^0.14.5",
    "cookie-parser": "^1.4.3",
    "cookie-session": "^2.0.0-beta.1",
    "debug": "^2.6.6",
    "ejs": "^2.5.6",
    "express": "^4.15.2",
    "express-route": "^0.1.4",
    "express-static": "^1.1.0",
    "multer": "^1.3.0",
    "mysql": "^2.13.0"
  }
}

接下来就是业务逻辑部分了,配置路由,结合上面路由的注册,新建路由js文件

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值