Как получить путь к изображению с помощью коа-мултера? - PullRequest
3 голосов
/ 02 февраля 2020

Я создаю загрузку изображения RestAPI с помощью коа-мультера. Я сохраняю изображение с URL в базе данных, но я не могу получить доступ к этому созданному URL. Когда я открываю этот URL, он говорит, что не найден. У меня есть проект в E drive. Когда я создаю полный путь от диска E к изображению, тогда URL работает, а затем я могу видеть изображение с созданным URL. Но это не правильный способ, которым я хочу получить изображение из URL проекта.

Он создает URL, например http://localhost:8000\\src\\images\\image.png

Каталог проекта

project
│   node_modules
│   package.json   
│
└───src
│   │   views
│   │   migrations
│   │
│   └───images
│       │   image.png

API

const multer = require('@koa/multer');

const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, 'src\\images')
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname)
    }
});

const upload = multer({
    storage: storage,
});

  router.post('/api/image_upload', upload.fields([
        {
            name: 'avatar',
            maxCount: 1
        }
    ]), async (ctx: Koa.Context, next: () => Promise<any>) => {

        var user_id = ctx.request.body.user_id;
        if (!user_id) {
            ctx.body = {
                status: 422,
                message: "Please enter user id",
            };
        } else {
            const userCheck = await connection.query('SELECT * FROM USERS WHERE id=$1',
                [`${user_id}`]);

                if (ctx.files['avatar']) {
                    var imageName = ctx.files['avatar'][0]['originalname'];
                    var path = ctx.files['avatar'][0]['path'];

                    var host = ctx.host;
                    var avatar = ctx.protocol + "://" + host + "\\" + path;
                } else {
                    avatar = userCheck[0].avatar;
                }
           }
    });
...