我是 web 开发的新手,我正在尝试使用 express 的 node.js。
我有以下目录结构:
第一个 App
---- node_modules
---- public
-------- scripts
------------ additems.js
---- views
-------- home .ejs
---- app.js
粗体是文件夹,斜体是文件。
这是文件 additem.js:
console.log("js connected");
alert("test");
这是 home.ejs 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Test Node</title>
</head>
<body>
<h1>Dynamic Page</h1>
<p></p>
<ol id='olist'>Names List</ol>
<script type="text/javascript" src="../public/scripts/additems.js"></script>
</body>
</html>
这是 app.js 文件:
var express = require('express');
var app = express();
console.log("Server has been started!");
//app.use(express.static(__dirname + "/public"));
app.get("/", function(req,res){
//res.send("Home Page");
res.render("home.ejs");
})
在页面加载之前运行javascript的问题
我知道这一点,因为警报消息出现在其他任何内容之前。此外,我尝试使用一些 DOM 元素,但它们已作为未定义返回。
搜索网络我可以看到我的脚本位置在标签之前是正确的,据说它应该最后运行。
我在这里想念什么?
我知道使用 onload 事件的可能性,但我想避免它,除非它是必须的,此外我想了解为什么脚本最终没有按预期运行。
更新 - 已解决
感谢 Scott Marcus 的贡献,帮助我解决了这个问题。
事实上,有一个双重错误。
1-我使用了 alert() ,这不是你提到的提示。
2- 我没有在 alert() 之后提及代码,因为我从受信任的网站复制了它,我希望问题尽可能简短。但是,代码有一个错误,导致它无法以正确的方式运行。
谢谢大家。