2017-07-11 74 views
0

我想問一些指導,我想承載我的項目網站之一。 我已經完成了前端,並在文件夾名稱Client。 它包含多個文件夾,index.html所需的資產和一些更多的網頁文本/照片,但有一個名爲registration.html另一個網頁,誰喜歡的人報名參加該項目可以註冊。 註冊頁面看起來像這樣帶電子郵件服務的基本服務器

<form method="post" action="formdata"> 
 
    <input type="text" id="name" value="" placeholder="name"/> 
 
    ...<!-- other fields --> 
 
</form>

字段從上面應該發送到我的郵箱。

現在,這裏是我卡在服務器端的地方。 在一個名爲server的文件夾中,我編寫了這個簡單的代碼server.js來託管這些頁面,但沒有任何功能。

var app = require('koa')(); 
 
var serve = require('koa-static'); 
 

 
app.use(serve('../Client')); 
 

 
app.listen(8080);

我如何才能讓這臺服務器從客戶端得到數據並將其發送到我的郵箱?

+0

項目前端是哪種技術?角js還是? – Monty

+0

不,只是簡單的HTML只是一點點的JavaScript。它是一個演示網站 – Paul

回答

0

你可以讓AJAX請求到對面的前端到後端發送數據。

如果使用普通的香草JS,你可以做到這一點像

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", "/sendEmail", true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.send("fname=Henry&lname=Ford"); 

,或者如果你正在使用jQuery,你可以直接使用post方法

在後端,您將需要設定的路線來聽這個要求,因爲您使用興亞

var koa = require('koa'); 
var http = require('http'); 
var router = require('koa-router')(); 
var bodyParser = require('koa-body')(); 

router.post('/sendEmail', bodyParser, function *(next){ 
    console.log(this.request.body); 
    yield(next); 
}); 

現在,您可以使用的mailto你的表格屬性,從日打開郵件客戶端Ë前端本身,而不需要提出請求的,這樣的事情會彈出郵件客戶端與身體

<a href="mailto:[email protected]?subject=Suggestions&body=Your%20suggestions%20are%20really%20important%20to%20us%20,thanks!">Send suggestions!</a> 
0

@Shivam感謝,擔任expeced。 從客戶端發送的數據使用JSON.stringify()進行編碼;併發送一個字符串

var app = require('koa')(); 
 
var http = require('http'); 
 
var router = require('koa-router')(); 
 
var bodyParser = require('koa-body')(); 
 
var serve = require('koa-static'); 
 

 
app.use(serve('../Client')); //serve public files 
 

 
router.post("/sendEmail", bodyParser, function *(next){ 
 
    //get form data from client 
 
    console.log("Got data") 
 
    var datastring = this.request.body; 
 
    console.log(datastring); 
 
    yield(next); 
 
}); 
 

 
app.use(router.routes()); //use routes 
 

 
app.use(function *(){ 
 
    //redirect 404 
 
    this.redirect('/index.html'); 
 
}); 
 

 
console.log("Running on 8080"); 
 
app.listen(8080);

下面是代碼,也許別人是會需要這個太