世界上最伟大的投资就是投资自己的教育

全场限时 5 折

 2018-05-23

 2018-05-22

 2018-05-18

 2018-05-17

 2018-05-16

 2018-05-15

  • ByeWord · 金丹
    ByeWord · 金丹 在视频 Node.js + Express + MongoDB 基础篇视频教程 #6 上传文件 回复了
    let express = require('express');
    let bodyParser = require('body-parser')
    let fs = require('fs');
    
    let app = express();
    var multer = require('multer');
    
    // 创建目录的函数
    var createFolder = function (folder) {
        try {
            //判断目录是否存在,使用同步,异步不行
            //目录不存在会抛出异常
            fs.accessSync(folder);
        } catch (e) {
            // 抛出异常后创建目录,同步创建
            fs.mkdirSync(folder);
        }
    };
    // 文件目录的字符串(相对路径)
    var uploadFolder = './upload/';
    //调用目录创建函数 ==>目录创建完成
    createFolder(uploadFolder);
    
    // 创建一个storage对象
    //The disk storage engine gives you full control on storing files to disk.
    // 翻译的意思是:这个硬盘存储引擎可以让你完全掌控把文件存储到硬盘==>意思是:按照你想要的方式存储上传来的文件
    var storage = multer.diskStorage({
        // 设置存放位置
        destination: function (req, file, cb) {
            cb(null, uploadFolder);
        },
        // 设置文件名称
        filename: function (req, file, cb) {
            cb(null, file.originalname);
        }
    });
    // 使用storage
    var upload = multer({
        storage: storage
    });
    // parse application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({
        extended: false
    }))
    
    // parse application/json
    app.use(bodyParser.json())
    
    app.get('/form', (req, res) => {
        // 这里的话需要用同步读取文件,异步的话fileData将在响应前得不到内容
        let fileData = fs.readFileSync('./pages/form.html', {
            encoding: 'utf8'
        });
        res.send(fileData);
    })
    // app.post(path, callback [, callback ...])可以放多个回调函数,意思是你可以放一下中间件
    //upload.single('logo') ==>single代表单文件上传 和name属性保持一致 <input type="file" name="logo">
    //upload.single('avatar') // 单文件上传
    //upload.array('photos', 12) //文本上传
    //upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }])//多文件上传
    app.post('/upload', upload.single('logo'), (req, res) => {
        console.dir(req.file);
        res.send({
            'ret_code': 0
        });
    })
    app.listen(3000, '127.0.0.1', () => {
        console.log("started");
    })
    
  • ByeWord · 金丹
    ByeWord · 金丹 在视频 Node.js + Express + MongoDB 基础篇视频教程 #6 上传文件 回复了
    app.get('/form',(req,res)=>{
        // 这里的话需要用同步读取文件,异步的话fileData将在响应前得不到内容
       let fileData = fs.readFileSync('./pages/form.html',{encoding:'utf8'});
       res.send(file);
    })
    
  • bakaru · 凡人
  • 随风 · 练气
    随风 · 练气 在文章 前后端 209 集视频分享(Nodejs,dva,React,Redux,Webpack) 回复了

    有播放列表呢 https://www.rails365.net/playlists

  • tzh1247 · 凡人
    tzh1247 · 凡人 在文章 前后端 209 集视频分享(Nodejs,dva,React,Redux,Webpack) 回复了

    建议视频栏目下的视频进行分类存放

© 汕尾市求知科技有限公司 | Rails365 Gitlab | Qiuzhi99 Gitlab | 知乎 | b 站 | 搜索

粤公网安备 44152102000088号粤公网安备 44152102000088号 | 粤ICP备19038915号

Top