首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >save()不是haraka插件+ mongoose函数。

save()不是haraka插件+ mongoose函数。
EN

Stack Overflow用户
提问于 2017-11-26 22:59:07
回答 1查看 137关注 0票数 0

我正试图为haraka邮件服务器创建一个插件,以支持将电子邮件保存到mongodb。这个插件运行良好,但是当我发送测试邮件时,它给了我这个错误:

插件队列/mongo_email失败: TypeError: Email.save不是函数

这是插件代码:

代码语言:javascript
复制
var mongoose         = require('mongoose');

var mongodbUri = "mongodb://localhost:27017/";

var options = {
  useMongoClient: true,
  socketTimeoutMS: 0,
  keepAlive: true,
  reconnectTries: 30
};

var db = mongoose.connect(mongodbUri, options);

var EmailSchema = mongoose.Schema({
  emailFrom: String,
  emailMsg: String,
  emailRcv: String,
  emailSubject: String
});

var Email = mongoose.model('Email', EmailSchema);

exports.hook_queue = function(next, connection){

    var transaction   = connection.transaction;
    var receivedDate  = transaction.header.headers.date;
    var subjectLine   = transaction.header.headers.subject;

    Email.save({
      emailFrom: transaction.mail_from,
      emailMsg: transaction.data_lines,
      emailRcv: receivedDate,
      emailSubject: subjectLine
    });

    next();

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-28 19:07:29

答案:

代码语言:javascript
复制
var mongoose         = require('mongoose');

var mongodbUri = "mongodb://localhost:27017/";

var options = {
  useMongoClient: true,
  socketTimeoutMS: 0,
  keepAlive: true,
  reconnectTries: 30
};

var db = mongoose.connect(mongodbUri, options);

var EmailSchema = mongoose.model('Email',{
  emailFrom: String,
  emailMsg: String,
  emailRcv: String,
  emailSubject: String
});


exports.hook_queue = function(next, connection){

    var transaction   = connection.transaction;
    var receivedDate  = transaction.header.headers.date;
    var subjectLine   = transaction.header.headers.subject;

    var Email = new EmailSchema({
      emailFrom: transaction.mail_from,
      emailMsg: transaction.data_lines,
      emailRcv: receivedDate,
      emailSubject: subjectLine
    });

    Email.save();

    next();

}

事务变量var transaction = connection.transaction;是一个包含有关新电子邮件的所有信息的对象。可以修改mongodb模式EmailSchema以支持其他选项,如消息头、附件等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47501925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档