我有职业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: '[email protected]',
from: '[email protected]',
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": {}
}
我用来存储文件的项目结构是
使用文件的绝对路径始终比相对路径更强大。使用__dirname
:
const filePath = __dirname + '/files/resume/' + remoteMethodOutput.resume;
如果你需要上升一级,然后进入files
目录,你需要Node的path
模块来解决它:
const path = require("path"),
filePath = path.normalize(__dirname + '/../files/resume/' + remoteMethodOutput.resume)