Thứ Năm, 16 tháng 7, 2020

Upload file in node js / Upload file bẳng nodejs

Các bước để tạo một API server bằng node js thì mình không làm nữa, chỉ bắt đầu bằng việc up ảnh

Bước 1: Tạo service upload ảnh

const multer = require('multer'// import library
const moment = require('moment')
const q = require('q')
const _ = require('underscore')
var file = require('file-system');
const fs = require('fs')
const dir = './public'
let sub = moment(moment.now()).format('YYYY-MM');
/** Store file on local folder */
let storage = multer.diskStorage({
    destination: function (reqfilecb) {
        cb(null'public/' + sub)
    },
    filename: function (reqfilecb) {
        let date = moment(moment.now()).format('YYYYMMDDHHMMSS')
        cb(nulldate + '_' + file.originalname.replace(/-/g'_').replace(/ /g'_'))
    }
})

/** Upload files  */
let upload = multer({ storage: storage }).array('files')

/** Exports fileUpload function */
module.exports = {
    fileUpload: function (reqres) {
        let deferred = q.defer()
        /** Create dir if not exist */
        if (!fs.existsSync(dir + "/" +sub)) {
            fs.mkdirSync(dir + "/" + sub)
            console.log(`\n\n ${dir} dose not exist, hence created \n\n`)
            
        }

        upload(reqresfunction (err) {
            if (req && (_.isEmpty(req.files))) {
                deferred.resolve({ status: 200message: 'File not attached'data: [] })
            } else {
                if (err) {
                    deferred.reject({ status: 400message: 'error'data: err })
                } else {
                    deferred.resolve({
                        status: 200,
                        message: 'File attached',
                        filename: _.pluck(req.files,
                            'filename'),
                        data: req.files
                    })
                }
            }
        })
        return deferred.promise
    }
}

Bước 2: Tạo route API về controller : fileUploadController.js

var fileUploadService = require('../services/fileUploadService');

function fileUploadController() {

    // var fileUploadService = _fileUploadService();
    
    async function uploadFile(reqres) {
        fileUploadService.fileUpload(reqres)
            .then(fileUploadServiceResponse => {
                res.status(200).send(fileUploadServiceResponse)
            })
            .catch(error => {
                res.status(400).send(error)
            })
    }

    // async function uploadFile(req, res, next) {
    //     console.log(req);
    //     if(req.file == null){
    //         return res.send("Không Có hình")
    //     } else {
    //         return res.send("Có hình")
    //     }
    // }

    return {
        uploadFile: uploadFile
    }
}

module.exports = fileUploadController;

Bước 3: Check lại với postman




Related Posts:

  • No version of NDK matched the requested versionLỗi NDK : No version of NDK matched the requested version 21.0.6113669. Versions available locally: 21.3.6528147Cập nhật lại NDK version cho đúng: Trên adnroid studio: -> Tool -> SDK Manager -> Chuyển qua tab SDK too… Read More
  • Tạo SSL cho domain 1. Mua SSL tại muassl.com2. Sau khi thanh toán và active 3. tải file certificate.cert và file key về (hoặc tải hết các file về)4. tạo file pfx: https://kb.pavietnam.vn/tao-file-pfx-de-import-vao-iis.html5. inp… Read More
  • Error when build IOS ionic - Upload IOS to Appstore by xcrunI. Upload IOS to App Store by xcrun 1. Generate .ipa file with signed.     Product -> archive2. move to ipa folder3. check ipa filexcrun altool --validate-app --file "$IPA_PATH" --username "$APP_STORE_USERNA… Read More
  • Gửi tin nhắn trong group Telegram thông qua Bot API Bài viết hướng dẫn gửi thông báo vào group Telegram thông qua Bot API. các phần của bài viết1. Tạo Bot Telegram2. Tạo Group Telegram , ad bot và test gửi tin nhắn3. Tạo API resfull với .net core và test bằng postmanI. T… Read More
  • Restorem database vào một database khác Mục dịch là save một Database cũ vào một Database mới , với tên khác, tên log và mdf khác luôn.1. Backup database muốn restore2. Vào Restore database với   - Option: Overwrite the existing database (WITH … Read More

0 nhận xét:

Đăng nhận xét