请选择 进入手机版 | 继续访问电脑版

文件上传node和java对比

[复制链接]
漫舞飞天 发表于 2021-1-1 18:35:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
  之前在写网站的时候,同学先容说node文件上传功能要比java快,于是我就实验用node内里的formidable模块写上传功能模块。
哎效果真的是坑死我了,由于用的是vue-cli脚手架在我把项目打包完成发现文件上传功能用不了,厥后突然明确文件上传是后端干的事,而vue-cli打包完后就成了静态资源,没有node运行的情况。
管理办法是在服务器上安装node情况,然后单独运行文件上传这个模块。
由于我的后端用java写的没办法只能用java再写一个文件上传功能,不外最后发现java文件上传要比node快性能更好。
单从java强范例语言就比node弱范例语言快许多多少,
java一次能上传150MB巨细的文件 ,node似乎是100MB左右
以下是我封装好的node文件上传代码
注意要先安装 formidable模块
vue中运行的话需要安装 concurrently 模块,然后修改package.json文件在script中添加
"start": "concurrently \"vue-cli-service serve\" \" node server.js\"", node反面是文件相对路径

  1. //创建网站服务器const http = require("http");//创建服务器对象const path = require('path');const formidable = require('formidable');const url = require('url');const fs = require("fs");let app = http.createServer((req, res) => {    let {pathname} = url.parse(req.url);    console.log(req.method, pathname);    // 创建表单解析对象    const form = new formidable.IncomingForm();    //删除文件   对文件使用只能由服务器端来完成    if (pathname == "/upload/delete" && req.method === 'POST') {        form.parse(req, (err, fields, files) => {            let path = fields.filename;            if (fs.statSync(path).isFile()) {                try {                    fs.unlinkSync(fields.filename)                } catch (e) {                    return e;                }            }            res.end()        });    }    if (pathname == "/upload/images" || pathname == "/upload/data" && req.method === 'POST') {        // 设置文件上传的位置        form.uploadDir = path.join(__dirname, "../../../", "/uploads/images");        // 保存传文件的后缀        form.keepExtensions = true;        //设置为多文件上传        // form.multiples = true;        //上传文件的最大巨细        form.maxFieldsSize = 60 * 1024 * 1024;        // 解析表单        form.parse(req, (err, fields, files) => {            // err错误处理处罚对象            // fields 对象范例 保存普通表单数据            // files对象范例 保存了和上传文件相关的数据            let filename = files.uploadFile.path.substring(0, files.uploadFile.path.lastIndexOf("\") + 1) + files.uploadFile.name;            fs.renameSync(files.uploadFile.path, filename);            //向欣赏器返回文件存储路径            res.write(filename)            res.end()        })    }});app.listen(3001, () => {    console.log('文件上传功能代码块启动乐成');})
复制代码
PS : 如何在vue中使用json-server 使其能被跨域访问
安装json-server模块


来源:https://blog.csdn.net/liangmaxmin/article/details/111967236
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )