如何从angular2发表到服务器

这里的新手试图从Angular 2发送联系表单数据到Node / Express服务器…现在,我正在托pipeAngular 2,内置服务器在localhost:4200,而express server在localhost: 3000。 我试过下面的代码,但得到以下错误:

Error: ENOENT: no such file or directory, stat 'C:\Users\corey\Desktop\Project\server\api\contact-form-submit' 

这是我的contact-form.component.ts文件:

 import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { HttpClient } from '@angular/common/http'; @Component({ selector: 'app-contact-form', templateUrl: './contact-form.component.html', styleUrls: ['./contact-form.component.css'] }) export class ContactFormComponent { constructor(private http: HttpClient) {} onSubmit(form) { this.http.post('http://localhost:3000/server/api/contact-form-submit', JSON.stringify(form.value)).subscribe(); console.log(form.value); } } 

这是我的server.js文件:

 var express = require('express'); var nodemailer = require('nodemailer'); var mg = require('nodemailer-mailgun-transport'); var bodyParser = require('body-parser'); var app = express(); var path = require('path'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); //trying to get contact form submission from angular 2 form here app.get('/', function (req, res) { res.sendfile('./api/contact-form-submit'); console.log('test'); }); //api key and domain for mailgun var auth = { auth: { api_key: 'api-key-here', domain: 'mailgun@domain here' } } //trying to send email with nodemailer here app.post('./api/send', function(req, res) { var transporter = nodemailer.createTransport(mg(auth)); var mailOptions = { from: 'postmaster@email.com', to: 'email@goeshere.com', subject: 'Website submission', text: 'Name: ' + req.body.name + 'Email: ' + req.body.email + 'Message: ' + req.body.message, html: '<p>Submission: </p><br><ul><li>Name: ' + req.body.name + '</li><li>Email: ' + req.body.email + '</li><li>Message: ' + req.body.message + '</li></ul>' }; transporter.sendMail(mailOptions, function(error, info) { if (error) { console.log(error); res.redirect('/'); } else { console.log('Message sent.'); res.redirect('/'); } }) }); app.listen(3000, function() { console.log('Express started on port 3000'); }); 

我得到了成功的表单数据在Angular 2中使用,我有快递服务器发送电子邮件与正常快递/得到HTML文件…但我不理解如何整合Angular与Express的关键部分和使用它发送一个电子邮件与Nodemailer。 任何帮助吗? 谢谢。 这是我的项目结构。

我正在回答类似的问题如何从angular度到节点服务器发出请求

从angular度发布时,需要在服务器上configurationcross-origin

检查这个github回购https://github.com/kuncevic/angular-httpclient-examples为此&#x4E8B;