【发布时间】:2014-09-18 13:27:58
【问题描述】:
我正在尝试以这种方式通过 POST 请求发送表单:
客户端
angular.module('app').controller('contactCtrl', function($scope, $http) {
$scope.envoyer = function(nom, organisation, courriel, telephone, message){
$http.post('/contact', {nom:nom, organisation:organisation, courriel:courriel, telephone:telephone, message:message}).then(function(error, response){
console.log('sent!');
if(response.data.success){
console.log('sent!');
}
});
}
});
服务器端
app.post('/contact', function(req, res, next){
var subject = req.query.nom;
var nom = 'Nom complet: ' + req.query.nom + '<br/>';
var organisation = 'Organisation: ' + req.query.organisation + '<br/>';
var courriel = 'Courriel: ' + req.query.courriel + '<br/>';
var telephone = 'Téléphone: ' + req.query.telephone + '<br/>';
var body = 'Message: ' + req.query.message.replace('/(?:\r\n|\r|\n)/g', '<br/>'); // THE ERROR TRIGGERS HERE !!!
var content = nom + organisation + courriel + telephone + body;
console.log(subject);
console.log(content);
mailer.sendMail('aaa@gmail.com', subject, content, next);
});
邮件
var mailer = require('nodemailer');
var EMAIL_ACCOUNT_EMAIL = 'aaa@gmail.com';
var EMAIL_ACCOUNT_PASSWORD = 'aaaa';
var smtpTransport = mailer.createTransport({
service: "Gmail",
auth: {
user: EMAIL_ACCOUNT_EMAIL,
pass: EMAIL_ACCOUNT_PASSWORD
}
});
exports.sendMail = function(toAddress, subject, content, next){
var success = true;
var mailOptions = {
to: toAddress,
subject: subject,
html: content
};
smtpTransport.sendMail(mailOptions, function(error, res){
if(error){
console.log('[ERROR] Message NOT sent: ', error);
success = false;
} else {
console.log('[INFO] Message sent: ' + res.message);
}
next(error, success);
});
}
但是,我在标记行的 node.js 控制台上遇到错误:
TypeError: 无法调用未定义的“替换”方法
请问我有什么绝妙的办法来解决这个问题吗?
【问题讨论】:
-
@mscdex,他们可能有相同的标题,但问题的目的不同。
标签: javascript node.js angularjs