我有一个Node应用程序,我想在其中使用socket.io与客户端通信数据,其中数据由smoothie显示。我将这两个包(通过NPM)安装在两个不同的节点环境中,并且这两个包都安装在项目的node_modules子目录中。其中一个环境是IDE Black,另一个是Cloud9 BeagleBone环境。在这两种情况下,socket.io模块都能很好地解析并工作,但是路径名的组合不会让smoothie模块解析(如果我直接从GitHub中拉出它,我就可以开始工作了)。
以下是Cloud9集成开发环境的服务器端代码的相关部分:
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(process.env.PORT, process.env.IP);
function handler (req, res) {
fs.readFile(__dirname + '/NotWorking.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
.
.
.以下是来自客户端的相关代码:
<!DOCTYPE html>
<html>
<head>
<script src="smoothie/smoothie.js"></script>
<script src="socket.io/socket.io.js"></script>
<script>
var line1 = new TimeSeries();
var line2 = new TimeSeries();
var socket = io.connect('http://demo-project.wisar.c9.io/');
socket.on('news', function (data) {
for (var property in data) {
dataPoint = data[property];
}
line1.append(new Date().getTime(), dataPoint);
line2.append(new Date().getTime(), 40);
socket.emit('my other event', { my: dataPoint });
});
</script>
.
.
. 正如我所说的,这两个模块都位于上述脚本所在的项目目录的node_modules子目录中。节点文档描述了includes应该如何解析(http://nodejs.org/api/modules.html#modules_all_together),我认为我可以按照路径来解析它如何通过index.js route...but的方式解析到socket.io的链接。当我在前面放一个"/“时,它也可以工作,但我找不到它的路径。任何路径的排列或组合都不会使smoothie模块解析。顺便说一句,small是一个小型的图表应用程序,可以在npm中以该名称找到。
任何帮助都将不胜感激。
发布于 2013-07-28 14:15:39
如果您的当前文件与node_modules位于同一目录中,则要加载smoothie,请在src of script tag中尝试以下路径:
./node_modules/smoothie/smoothie.js路径smoothie/smoothie.js没有给出smoothie.js的位置,它位于node_modules/smoothie/smoothie.js中。这对我很有效,我希望这对你也有效。
https://stackoverflow.com/questions/17130818
复制相似问题