HTML中的OnClick事件发生后,在节点服务器上运行JS函数

时间:2018-10-06 07:55:26

标签: javascript html node.js express

我正在 Windows 上使用 node.js express 模块来生成一个静态页面,该页面具有我要提交的表单当有人单击“提交”按钮时,在服务器上运行update()函数(即不公开公开我的js文件)。

问题:

似乎我的update()函数无法从HTML识别。生成以下错误:

  

未捕获的ReferenceError:未定义更新       在HTMLInputElement.onclick((index):23)

我怀疑这是我的节点项目设置不正确的结果。


服务器文件(server.js):

var fs = require('fs');
var express = require("express");
var app     = express();

app.get('/',function(req,res){
  res.sendFile(path.join(__dirname+'/index.html'));
  //__dirname : It will resolve to your project folder.
});

//loading all files in public folder
//see instructions in https://expressjs.com/en/starter/static-files.html
app.use(express.static('public'));

app.listen(8080);

console.log("Running at Port 8080");

HTML文件(index.html):

<!DOCTYPE html>
<html>

<body>

<div id="div1">
  <p id="p1">This is a static paragraph.</p>
</div>

<p>
  <script type="text/javascript" src="start.js"></script>
</p>

Input:
<br>
<input type="text" name="human_input" value="">
<br>
<input type="button" value="Submit" onclick="update()">

</body>
</html>

JS文件(compute.js)

function update() {
    console.log("this is running!")
}

^^注意,这是我正在尝试使用的示例脚本。

我的文件夹结构

/
- node_modules
-- *
- public
-- start.js
- index.html
- compute.js
- package-lock.json
- server.js
- start.js

注释:

  • 以前,当我不使用节点时,从update()调用onclick可以正常工作。

1 个答案:

答案 0 :(得分:1)

您错过了指向script文件的html文件中的compute.js标签,这就是为什么您的update无法正常工作的原因。

只需复制html文件中已有的script并将src属性更改为compute.js