在使用Google Apps脚本编写Web应用程序多年之后,我才开始使用Azure。我需要改变工作方式,使其与iPhone不兼容。我当时使用的是JavaScript和HTML,因此已使用node.js重新创建了该应用。
我能够返回html页面并运行客户端脚本,但是我需要能够触发服务器端脚本,因此我不会在客户端打开SQL数据库。
server.js脚本如下:
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
fs.createReadStream(path.resolve(__dirname, 'HTMLPage.html'))
.pipe(res);
}).listen(process.env.PORT || '3000'); // provide a default
function processForm(form) {
var firstName = form.firstName;
var lastName = form.lastName;
console.log(firstName);
}
HTMLPage包含表单代码以及带有onsubmit命令的按钮,该按钮触发客户端脚本,但是我似乎无法触发服务器端脚本(我的尝试以粗体显示)。你能告诉我我要去哪里了吗?
<!DOCTYPE html>
<html lang="en">
<script>
function post() {
var first = document.getElementById("firstName").value;
var last = document.getElementById("lastName").value;
window.alert('Thanks, we will contact you soon.');
processForm(form).init; //This is the bit which is not calling the script
};
</script>
<head>
<meta charset="utf-8" />
</head>
<body>
<div id="formdiv">
<form id="form" onsubmit="post();">
<input type="firstName" class="form__input" id="firstName" name="firstName" />
<label class="form__label" for="firstName"><span class="form__label-content">First Name</span></label>
<input type="lastName" class="form__input" id="lastName" name="lastName" />
<label class="form__label" for="lastName"><span class="form__label-content">Last Name</span></label>
<input type="text" id="ddValues" name="ddValues" style="display:none" />
<input type="submit" name="submit" class="btn btn-block" onclick="post();">
</form>
在控制台中,我收到以下消息,而不是触发脚本:
未捕获的ReferenceError:未定义processForm 在后 在HTMLInputElement.onclick
有人知道我在这里想念什么吗?谢谢
编辑
根据ruggierom&naga-elixir-jar的信息,这是更新的脚本。现在,我的结果为我提供了3个未定义的对象。
Server.js
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
fs.createReadStream(path.resolve(__dirname, 'HTMLPage.html'))
.pipe(res);
console.log(req.body);
}).listen(process.env.PORT || '3000'); // provide a default
HTML
<head>
<meta charset="utf-8" />
</head>
<body>
<form id="form" name="form" method="post">
<input type="firstName" class="form__input" id="firstName" name="firstName" />
<input type="lastName" class="form__input" id="lastName" name="lastName" />
<input type="submit" name="submit">
</form>
</body>