我正在 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
可以正常工作。答案 0 :(得分:1)
您错过了指向script
文件的html文件中的compute.js
标签,这就是为什么您的update
无法正常工作的原因。
只需复制html文件中已有的script
并将src
属性更改为compute.js
值