我有一个基本的脚本源链接:
// index.html
<script src="/js/jquery.js"></script>
尽管文件存在,但它不起作用。我试图在Node.js服务器中链接到它,但是它抛出了一个表示没有定义的错误,但它确实存在。
//server.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clientlist = [];
app.get('/', function(req, res) {
res.sendfile('index.html');
app.use(express().static('/js/jquery.js'));
});
答案 0 :(得分:2)
这是我的解决方案。
您可能想要使用您正在使用的目录替换&#39; / var / www / nodeserver&#39 ;.
首先,请勿使用res.sendfile()
,不推荐使用res.sendFile()
。
或者只是提供一个完整的目录:
这可能是你的索引.js&#39;在&#39; / var / www / nodeserver&#39;:
// Setup basic express server
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
// Change 3000 to whatever port, you want to access the site with"http://127.0.0.1:3000"
var port = process.env.PORT || 3000;
server.listen(port, function() {
console.log("Server listening at port "+port);
});
// Routing
var dir = __dirname+'/public'; // Path of the index.js but one dir further (public)
app.use(express.static(dir)); // serve all files in '/var/www/nodeserver/public/'
你需要有一个&#39; package.json&#39;,其中包含:
{
"name": "nameofyourapplication",
"version": "versionofyourapplication",
"dependencies": {
"express": "^4.10.2",
"socket.io": "^1.3.7"
}
}
然后使用以下命令安装&#39; package.json&#39;中定义的依赖项:npm install
,同时在目录&#39; / var / www / nodeserver /&#39; 。
这将在本地安装所有依赖项,因此它将在&#39; / var / www / nodeserver&#39;中创建名为&#39; node_modules&#39;的文件夹。
接下来,您只需将要投放的所有文件放入“公共场所”即可。 &#39; / var / www / nodeserver&#39;中的文件夹并运行&#39; index.js&#39;与node index.js
。
你的filetree应该是这样的:
应该这样做!
答案 1 :(得分:2)
您的requires are wrong,因此未定义表达
选择第一行var app = require('express');
var express = require('express');
var app = express();
答案 2 :(得分:0)
在文件名之前,输入__dirname,'index.html'
。
新代码将为res.sendfile(__dirname + 'index.html');
您的第一行也是错误的,应该是var express = require('express');