2014-09-02 5 views
2

У меня есть встроенная форма электронной почты в модальном экземпляре с использованием AngularJS, который содержит поле, отправляющее электронную почту, адрес получателя, тему и адрес электронной почты. Форма использует поля ввода и ng-модели для отслеживания данных. Когда пользователь нажимает кнопку отправки в этой форме, я хотел бы отправить всю информацию, собранную моделями, на сервер, чтобы отправить электронное письмо.Отправка формы AngularJS в NodeMailer для отправки электронной почты

В настоящее время у меня есть кнопка черновика и когда пользователь нажимает кнопку черновика, я отправляю всю информацию, собранную в моделях, контроллеру, который отправляет его службе, чтобы я мог повторно заполнять информацию, если пользователь решает для закрытия модального экземпляра и отправки электронной почты позже. Однако, если пользователь нажимает кнопку отправки, у меня есть этот объект со всей информацией, но я не знаю, как отправить его на сервер. Я очень новичок в node.js и backend вообще, поэтому, если вы кто-то может предоставить конкретный короткий пример для меня, чтобы узнать, что это было бы здорово.

Я ищу использовать модуль nodemailer, который я установил с помощью npm.

Спасибо!

ответ

4

На стороне узла вы можете создать конечную точку REST, чтобы получить запрос POST с сервера для отправки формы электронной почты в модальном поле. Конечная точка REST будет выглядеть так, если у вас есть экспресс-сервер.

var express = require('express'); 
var router = express.Router(); 
var app = express(); 
app.post('/postEmail',function(req,res){ 
    //Your NodeMailer logic comes here 
}); 

В угловой части, так же, как вы написали услугу, вы можете создать угловую фабрику для вызова этой цели REST точки.

Например:

myApp.factory('postEmailForm',['$http',function($http){ 
    return { 
    postEmail: function(emailData,callback){ 
     $http.post("/postEmail/", emailData).success(callback); 
    } 
    } 
}]); 

где MYAPP ваш угловой модуль, emailData является данные emailForm, которые вы хотите отправить на сервер (она будет размещена в теле запроса)

мог
+0

вы объясняете компонент обратного вызова функции, которую вы написали? – es3735746

+0

обратный вызов используется для того, чтобы заставить контроллер ждать данных (в данном случае это сообщение об успешной ошибке) с сервера. Это будет res.send, что когда-либо вы решите отправить – V31

+0

Хорошо спасибо, я пытаюсь реализовать эту часть, но он продолжает говорить 'POST http: // localhost: 9000/postEmail/404 (не найдено)' – es3735746

Смежные вопросы