我正在访问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)获取libs.js 404(未找到)localhost /:11
3)未捕获的ReferenceError:未定义main(索引):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文件。
答案 0 :(得分:2)
如果您希望这些文件可以访问,则需要实际提供这些文件。您不能将它们包含在项目目录中。如果您使用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);
答案 1 :(得分:1)
您是否打算致电:
<script>
jQuery(function($){
main(); //this function is inside of script.js
});
</script>
如果您那样,则需要将代码保存为根目录中名为script.js的文件。在html中的标签之间添加javascript / jQuery不需要调用,并且会自动运行。
我建议你也按照以下方式编写脚本,我不会认出你的方式。
<script>
var main = function() {
\\Your javascript/jQuery
}
$(document).ready(main);
</script>