save() 不是函数 haraka plugin + mongoose
save() is not a function haraka plugin + mongoose
我正在尝试为 haraka 邮件服务器创建一个插件以支持将电子邮件保存到 mongodb。
该插件 运行 很好,但是当我发送测试电子邮件时,它给我这个错误:
Plugin queue/mongo_email failed: TypeError: Email.save is not a function
这是插件代码:
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();
}
答案:
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;
是一个 object 包含有关新电子邮件的所有信息。可以修改 mongodb 架构 EmailSchema
以支持其他选项,例如消息 headers、附件等
我正在尝试为 haraka 邮件服务器创建一个插件以支持将电子邮件保存到 mongodb。 该插件 运行 很好,但是当我发送测试电子邮件时,它给我这个错误:
Plugin queue/mongo_email failed: TypeError: Email.save is not a function
这是插件代码:
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();
}
答案:
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;
是一个 object 包含有关新电子邮件的所有信息。可以修改 mongodb 架构 EmailSchema
以支持其他选项,例如消息 headers、附件等