通过express路由调用HTML中的Javascript函数
Calling Javascript function in HTML through express routes
在尝试调用function2.js中的函数时出错。该函数是下面的一个简单测试方法createString。我需要调用driver.html中的函数。我使用app.get在服务器文件(app.js)中查找javascript文件,但我一直收到错误"gethttp://localhost:3000/DRIVER/js/function2.js"当我跑步时"http://localhost:3000/DRIVER/"没有名为driver的文件夹。我只需要使用它。js文件夹就在主文件夹中。如何在express routes 中调用html中的js文件夹
函数2.js
function createString() {
var hash;
var firstWord = randomWord();
var secondWord = randomWord();
var number = Math.floor(Math.random()*999)+1;
hash = firstWord + number + secondWord;
return hash.toString();
}
function randomWord(){
var words = ["Apple", "Apricot", "Avocado", "Banana", "Blackberry", "Blueberry", "Cherry", "Grapefruit", "Lemon", "Lime",
"Coconut","Kiwi","Peach","Pear","Pineapple","Melon","Watermelon","Raspberry","Strawberry","Hanger",
"Grape","Plum","London","Dublin","Moscow","Berlin","Madrid","Paris","Stockholm","Vienna",
"Chair","Texas","California","Nevada","Florida","Montana","Bravo","Delta","Echo","Hotel",
"Tango","Whiskey","Foxtrot","Golf","Zulu","Yankee","Magnet","Button","Watch","Red",
"White","Green","Black","Yellow","Grey","Blue","Pink","Purple","Diary","Bottle",
"Water","Fire","Wind","Sweet","Sugar","Stamp","Brush","Small","Medium","Large",
"Brown","Piano","Guitar","Canvas","Carrot","Mouse","Dog","Cat","Squirrel","Truck",
"Rabbit","Toothbrush","Chalk","Puddle","Elephant","Giraffe","Frog","Falcon","Eagle","Parrot",
"Shark","Tiger","Butterfly","Turtle","Snake","Fish","Whale","Walrus","Kangaroo","Wolverine"];
return words[(Math.floor(Math.random()*100)+0)];
}
Driver.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>driver</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<script src="js/function2.js"></script>
<script>
var session = createString();
console.log(session);
var url = window.location.href;
console.log(url);
var urlNew = url + "/" + session;
console.log(urlNew);
window.location.href = urlNew;
location.replace(link);
console.log(link);
</script>
</body>
</html>
app.js:
var express = require('express');
var app = express();
var path = require("path");
//possible routes
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname+'/homepage.html'));
});
app.get('/DRIVER/', function (req, res) {
res.sendFile(path.join(__dirname+'/driver.html'));
console.log(req.url);
});
app.get('/NAV/', function (req, res) {
res.sendFile(path.join(__dirname+'/homepage.html'));
console.log(req.url);
});
var x = '+([A-Z])+([0-9])+([A-Z])+'
app.get('/DRIVER/'+x, function (req, res) {
res.send('Hello Driver!');
console.log(req.url);
});
app.get('/NAV/'+x, function (req, res) {
res.send('Hello Navigator!');
console.log(req.url);
});
// route to javascript
app.get('/js/function2', function (req, res) {
res.sendFile(path.join('/js/function2.js'));
console.log(req.url);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
您必须为此添加express.static
为了提供静态文件,例如图像、CSS文件和JavaScript文件,使用express中的express.static内置中间件功能。
在您的情况下,您必须在第一次应用程序之前添加。设置此行
app.use(express.static('public'));
您必须将公用替换为文件夹
请参阅在Express 中提供静态文件
app.get('/js/function2', function (req, res)
:function2
之后没有.js
<script src="js/function2.js"></script>
需要/js/function2.js
路由
然而express.static最好像js文件一样提供静态内容。。。
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- Node.js中的JavaScript原型对象效率
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将angularjs中的javascript字符串输出为循环数组
- 多次调用另一个javascript函数中的javascript函数
- for循环中的javascript if语句找不到==
- ascii输入键通过firefox中的javascript返回0
- Wordpress中的Javascript出现匿名函数/引用错误
- 从angularjs中的javascript更新dom
- for循环中的JavaScript闭包
- 如何通过documents.ready函数中的javascript自动按键(ctrl+shift+i)
- 访问嵌套函数结构中的JavaScript父函数变量
- 如何将值传递给wicket中的javascript函数
- 为什么可以't我将数据从c#发送到asp.net中的Javascript文件
- 如何将Bundle中的javascript文件包含到一个trick文件中
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- HTML文本框中的javascript数字
- 嵌入参数中的Javascript函数会自动运行
- Play 2.5 for Java中的Javascript路由