我想请一些指导,我想主持我的一个项目网站。
我已完成前端并输入文件夹名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 :(得分:0)
您可以使AJAX请求将数据从frontEnd发送到backEnd。
如果你使用普通的香草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方法
在你的后端,你将需要设置一条路线来收听这个请求,因为你正在使用Koa
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:someone@example.com?subject=Suggestions&body=Your%20suggestions%20are%20really%20important%20to%20us%20,thanks!">Send suggestions!</a>
答案 1 :(得分:0)
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);
这是代码,也许其他人也需要这个