我的职业是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": {}
}
我用来存储文件的项目结构是
答案 0 :(得分:0)
为文件使用绝对路径总是比相对路径更可靠。为此使用__dirname
:
const filePath = __dirname + '/files/resume/' + remoteMethodOutput.resume;
如果需要上一层,然后进入files
目录,则需要Node的path
模块来解决它:
const path = require("path"),
filePath = path.normalize(__dirname + '/../files/resume/' + remoteMethodOutput.resume)