错误:TypeError:无法调用未定义的方法“替换”[重复]
Posted
技术标签:
【中文标题】错误:TypeError:无法调用未定义的方法“替换”[重复]【英文标题】:err: TypeError: Cannot call method 'replace' of undefined [duplicate] 【发布时间】: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,他们可能有相同的标题,但问题的目的不同。 【参考方案1】:您收到此错误消息是因为 req.query.message 未定义。检查变量 req.query.message 是否存在,这应该可以工作。
【讨论】:
好的,那么如何从post请求中获取参数呢? 对于 POST 请求:req.body;对于 GET 请求:req.params以上是关于错误:TypeError:无法调用未定义的方法“替换”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的TypeError:尝试在Vuejs中调用onchange()方法时,无法读取未定义的属性“apply”
*简单*解析云代码查询失败“TypeError:无法调用未定义的方法'get'\n检索该信息”
IBM Worklight 5.0.x:未捕获的 TypeError:无法调用未定义的方法“init”
socket.io 角度错误:未捕获的 TypeError:无法调用 null 的方法“onClose”
错误:未捕获 [TypeError:无法读取未定义 Jest 反应测试的属性“x”
api调用在一种方法中工作但在另一种方法中不起作用---TypeError:无法读取未定义的属性'getResponse'