编程语言
首页 > 编程语言> > node.js + express处理上传文件接口demo

node.js + express处理上传文件接口demo

作者:互联网

在平时工作和自己写小项目时会遇到需要上传文件的场景,这里使用nodejs搭建服务端接口。

模块

const express = require('express');
const app = express();
const cors = require('cors');
const multer = require('multer');
const fs = require('fs');

接口

const express = require('express');
const app = express();
const cors = require('cors');
const fs = require('fs');
const multer = require('multer');

// 引入multer
const upload = multer({
    dest: 'uploads/'
});

morgan.token('body', (req: { body: any; }) => {
    return JSON.stringify(req.body);
});

// 托管静态文件,并且加个前缀uploads,为了安全规范
app.use('/uploads', express.static(__dirname + '/uploads'));

// 处理带cookies的跨域请求
app.use(cors({credentials: true, origin: 'http://localhost:8080'}));

// 接口填写,上传文件类型为任何文件
app.post('/upload', upload.any(), async (req: any, res: any) => {
    res.header('Access-Control-Allow-Credentials', true);
    res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    console.log(req.files[0]);  // 上传的文件信息

	// 保存文件,或者做一些后续文件的处理
    var des_file = "./uploads/" + req.files[0].originalname;
    fs.readFile( req.files[0].path, (err: any, data: any) => {
        fs.writeFile(des_file, data,  (err: any) => {
            if(err){
                console.log(err);
            }else{
                const response = {
                    message: 'File uploaded successfully',
                    filename: req.files[0].originalname
                };
                res.end(JSON.stringify(response));
            }
        });
    });
})

在这里插入图片描述

标签:node,req,const,demo,require,express,multer,any
来源: https://blog.csdn.net/weixin_41935198/article/details/118581430