学习使用Angularjs和Node编码-创建基本联系人表单-速记属性初始值设定项无效
第一篇帖子:) 我正在学习使用Angularjs和Node编写代码。我已经完成了一些javascript课程,没有遇到任何问题,我的一个朋友向我提出挑战,要求我与Angularjs创建一个基本的联系表单,通过Node发送电子邮件,以推进我的学习 我已经阅读了Angularjs文档、节点文档以及不同的教程和站点,以便找到解决问题的方法,并且能够继续前进,但仍然被这个错误所困扰 这是我的密码:学习使用Angularjs和Node编码-创建基本联系人表单-速记属性初始值设定项无效,angularjs,node.js,Angularjs,Node.js,第一篇帖子:) 我正在学习使用Angularjs和Node编写代码。我已经完成了一些javascript课程,没有遇到任何问题,我的一个朋友向我提出挑战,要求我与Angularjs创建一个基本的联系表单,通过Node发送电子邮件,以推进我的学习 我已经阅读了Angularjs文档、节点文档以及不同的教程和站点,以便找到解决问题的方法,并且能够继续前进,但仍然被这个错误所困扰 这是我的密码: <html> <head> <script src="https
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<form name="mailForm" action="#" ng-controller="MainController">
To: <input type="email" ng-model="inputTo"><br>
Subject: <input type="text" name="inputSubject"><br>
Mail body: <br><textarea name="inputMessage">Type in your message</textarea><br>
<input type="submit" ngClick="Submit">
</form>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('MainController', function($scope){
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport('smtps://email%40gmail.com:password@smtp.gmail.com');
$scope.data = {
inputTo = "default",
inputSubject = "default",
inputMessage = "default"
};
$scope.submitForm = function(){
var mailOptions = {
from: '"Dev ?" <email@email.com>',
to: {{inputTo}},
subject: {{inputSubject}},
text: {{inputMessage}}
}
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
}
})
</script>
</body>
</html>
你们能帮我一下吗
提前非常感谢 您的语法有几个问题 1) 定义对象的正确方法如下所示:
$scope.data={
输入:“默认”,
inputSubject:“默认”,
inputMessage:“默认值”
};代码>我认为您刚刚尝试将node.js和angularjs融合在一起。我的第一个提示是使用var nodemailer=require('nodemailer')
这是您在nodejs中需要其他包的方式,angularjs没有该功能。在谷歌快速搜索NodeEmailer后,我的怀疑得到了证实。由于nodeEmailer是nodejs的一个包,您将无法在angular应用程序中访问它的功能,至少不能直接访问
您需要做的是在angularjs应用程序中有一个调用node.js函数的函数。因此,您只需要将angular控制器中当前的逻辑迁移到它自己的node.js文件中
事情的nodejs方面有点复杂。您需要定义一个nodejs路由,以便能够与nodejs“对话”。所以基本上,只要你在你的页面中找到某个链接,你的nodejs代码就会被调用
例如,可能会转到:www.base-website-url/create/email
将运行保存节点代码的server.js
文件(与控制器中的代码相同)。我建议您学习如何在nodejs中制作一个简单的crud应用程序。用谷歌搜索一下
另外,现在想想,事情的角度也会有点复杂。由于您正在创建一些东西(在本例中是电子邮件对象),因此需要在angularjs中进行POST(google http谓词)调用,以将电子邮件对象发送到我们的nodejs函数。Angular表示愿意提供帮助。ngResource也是另一个您可以使用的补充模块,但我可能会坚持学习$http
还有几件事。我知道这是你的第一篇文章,所以我可以理解你为什么会这样写文章,但只是为了将来,这里有一些东西可以让你的文章更具活力:
描述要简短,要切中要害,包括标题。我不太可能回答你的问题,如果你的问题过于冗长,我想尽快开始解决这个问题
共享已编制的代码示例。有几个网站(,)可以让你像我所说的那样“代码涂鸦”。它们有html面板、css面板和js面板。这使得编写足够多的代码来获取一个工作示例并共享链接变得非常容易。这样一来,任何其他想要帮助解决问题的开发人员都已经有了一些可以开始使用的代码。这样回答问题就容易多了,你甚至可以在自己创造问题的过程中找出问题所在。(我不止一次这样做过)
接受答案。如果答案正确,则在答案旁边的绿色小复选框中将其标记为已接受。这让其他人知道答案对你有用,这样他们在尝试时会更有信心,同时也会奖励回应者
除此之外,只要不断地学习,努力付出至少和你得到的一样多。祝你好运
index.html?inputSubject=test&inputMessage=TEST+Type+in+your+message:26 Uncaught SyntaxError: Invalid shorthand property initializer
angular.js:38 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=myApp&p1=Error%3A%2…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.4.8%2Fangular.min.js%3A20%3A274)(…)