loopback отправить письмо с вложением не работает - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть карьера PersistedModel для хранения данных в базе данных, и у меня есть модель вложений для хранения файлов в каком-либо месте. Теперь я хочу отправить электронное письмо с данными.Я могу отправить только данные о карьере, но хочу отправить вложение также с тем же адресом электронной почты. Я не смог получить имя файла, потому что его нет в модели карьеры, а во вложении.Как получить имя файла и отправить его, помогите мне.

career.js

const app = require('../../server/server');
module.exports = function(Career) {
    Career.afterRemote('create', function(context, remoteMethodOutput, next) { 
        next(); 
       console.log(remoteMethodOutput) 
    Career.app.models.Email.send({ 
            to: 'lakshmipriya.l@gmail.com', 
            from: 'lakshmipriya.l@gmail.com', 
            subject: 'my subject', 
            html: 'Hello-world',
            attachments: [
             {  
            path: '../files/resume/'+remoteMethodOutput.resume,
             }
             ],
            }, function(err, mail) { 
                // console.log(context.result.email)
            console.log('email sent!'); 
            cb(err); 
        }); 
    }); 
};

attachment.json

{
  "name": "attachment",
  "base": "Model",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {},
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

Структура моего проекта, где я использовалдля хранения файлов стоит

enter image description here

1 Ответ

0 голосов
/ 02 апреля 2019

Использование абсолютного пути для ваших файлов всегда более надежно, чем относительный путь.Для этого используйте __dirname:

const filePath = __dirname + '/files/resume/' + remoteMethodOutput.resume;

Если вам нужно подняться на один уровень вверх, то войдите в каталог files, вам нужен модуль Node's path для его разрешения:

const path = require("path"),
      filePath = path.normalize(__dirname + '/../files/resume/' + remoteMethodOutput.resume)
...