javascript - 如何在 node.js 应用程序中包含 JavaScript 文件?

标签 javascript jquery node.js

我正在这样访问 index.html 中的 script.js 和 libs.js:

<body style='margin:0px' >
<canvas id='your_canvas'
        style='position: absolute; background-color: black;'></canvas>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="/libs.js"></script>
<script type="text/javascript" src="/script.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
    jQuery(function($){

        main(); //this function is inside of script.js

    });
</script>

但是无法访问 .js 文件并显示错误:

1) GET script.js 404 (Not Found) localhost/:12.
2) GET libs.js 404 (Not Found) localhost/:11.
3) Uncaught ReferenceError: main is not defined (index):17.

我哪里出错了,我如何使用 node.js 包含这两个 JavaScript 文件?

我的 app.js 是:

 var express = require("express"),
 app = express(),
 server = require("http").createServer(app),
 io = require("socket.io").listen(server);
server.listen(8000);

app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});

app.use(express.static(__dirname + '/public/script.js'));
app.use(express.static(__dirname + '/public/libs.js'));

 io.sockets.on('connection', function(socket) {
    socket.on('send coordinates',function(data){
    io.sockets.emit('coordinates', data);
    });

});

然后我有我的 script.js 和 libs.js 文件。

最佳答案

如果您希望这些文件可供访问,则需要实际提供这些文件。您不能只将它们包含在您的项目目录中。如果您使用 Express , 你可以像这样指定一个静态文件目录:

app.use(express.static(__dirname + '/public'));

您还可以使用 node-static甚至为每个文件创建一个处理程序...

使用 express,您的代码应如下所示(未测试):

var express = require("express");
var app = express();
app.server = require('http').createServer(app);
var io = require("socket.io").listen(app.server);

app.get('/', function(req, res){
    res.sendfile(__dirname + '/public/index.html'); // I would move this file to public
});

app.use(express.static(__dirname + '/public'));

io.sockets.on('connection', function(socket) {
    socket.on('send coordinates',function(data){
        io.sockets.emit('coordinates', data);
    });
});

app.server.listen(8000);

关于javascript - 如何在 node.js 应用程序中包含 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156557/

相关文章:

javascript - 正则表达式 : substring not followed by character

node.js - 重置 Mongoose 模型缓存

javascript - 表示字符串文字中的单引号和双引号

javascript - 循环时对 localStorage 中的数值求和

node.js - 了解模块的 npm 和 Node.js 安装位置

JavaScript + jQuery : Display calculated variable in table instead of console. 日志

javascript - jQuery - 使用表单外的选项卡进行表单验证

javascript - 谷歌图表 : "Cannot read property ' toLowerCase' of undefined"

php - 将 PHP 变量传递给 onLoad (JS)

javascript - Font-awesome 没有在 Bootstrap 中加载图标