如何使用express和nodeJS将javascript文件链接到html页面

时间:2014-09-29 20:49:04

标签: javascript html node.js

我的nodeJS应用程序非常简单,但我很难将我的javascript文件链接到它。通常,您只需将脚本放在标题中即可。显然,这不适用于Node,所以试图通过sendFile和其他方法链接它,但没有一个有效。

我的Javascript很简单:

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


app.get('/',function(req, res) {
    res.sendFile(__dirname + '/index.html');
    res.send()
});
app.listen(8888)

我的HTML也很简单:

<html>
<head>
    <title>Charter</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
    <div id="container" style="width:100%; height:400px;"></div>
    <button id="button" class="autocompare" onclick="plotNewChart()">Add series</button>
    <script type="text/javascript">
         $(function () { $('#container').highcharts({ chart: { events: { addSeries: function () { var label = this.renderer.label('A series was added, about to redraw chart', 100, 120).attr({ fill: Highcharts.getOptions().colors[0], padding: 10, r: 5, zIndex: 8 }) .css({ color: '#FFFFFF' }) .add(); setTimeout(function () { label.fadeOut(); }, 1000); } } }, xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] }); });
    </script>
</body>
</html>

我想要做的是链接另一个文件myJS.js。如果没有典型的`

,我不知道怎么做

1 个答案:

答案 0 :(得分:7)

您需要设置Express服务器以提供静态文件。目前,它似乎只服务于&#39; /&#39;路由。

在您设置路由之前,请添加以下行。然后,您可以提供来自公众&#39;的静态资产。文件夹相对于脚本的位置。

app.use(express.static(path.join(__dirname, 'public')));

因此,如果您将myJS.js放在public/js/myJS.js中,则可以像这样引用它

<script src="/js/myJS.js"></script>

文档中的更多信息:http://expressjs.com/api.html#express.static