通过express routes在HTML中调用Javascript函数

通过express routes在HTML中调用Javascript函数,javascript,html,node.js,express,Javascript,Html,Node.js,Express,尝试调用function2.js中的函数时出错。下面的函数是一个简单的测试方法createString。我需要调用driver.html中的函数。我使用app.get在我的服务器文件(app.js)中查找javascript文件,但当我运行“没有名为driver的文件夹”时,我不断得到一个错误“get”。我只需要使用它。js文件夹就在主文件夹中。如何在express routes中调用html中的js文件夹 function2.js function createString() { var

尝试调用function2.js中的函数时出错。下面的函数是一个简单的测试方法createString。我需要调用driver.html中的函数。我使用app.get在我的服务器文件(app.js)中查找javascript文件,但当我运行“没有名为driver的文件夹”时,我不断得到一个错误“get”。我只需要使用它。js文件夹就在主文件夹中。如何在express routes中调用html中的js文件夹

function2.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>

必须为此添加express.static

要提供静态文件,如图像、CSS文件和JavaScript文件, 在express中使用express.static内置中间件功能

在您的情况下,您必须在第一个应用之前添加。获取此行

app.use(express.static('public'));
必须用文件夹替换公用文件夹的位置

参见
app.get('/js/function2',function(req,res)
:在
function2
之后没有
.js

需要一条
/js/function2.js
路线

但是express.static最好像js文件一样提供静态内容…

“获取http://localhost:3000/DRIVER/js/function2.js“
不是一个错误……错误将是返回的状态代码,这将让我们了解它失败的原因。
app.use(express.static('public'));