Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单页节点_Javascript_Node.js_Express_Websocket_Socket.io - Fatal编程技术网

Javascript 单页节点

Javascript 单页节点,javascript,node.js,express,websocket,socket.io,Javascript,Node.js,Express,Websocket,Socket.io,我是新手。 我必须在现有网站上使用node js、express、socket.io制作一个web应用程序。 我使用Parallels-Plesk面板上的JXcore来执行节点。 但当我运行js文件并访问网站上的任何页面时,它会返回“无法获取”。 如果使用express get()函数: var app = require('express')(); var http = require('http').Server(app); var path = require('path'); app.

我是新手。 我必须在现有网站上使用node js、express、socket.io制作一个web应用程序。 我使用Parallels-Plesk面板上的JXcore来执行节点。 但当我运行js文件并访问网站上的任何页面时,它会返回“无法获取”。 如果使用express get()函数:

var app = require('express')();
var http = require('http').Server(app);
var path = require('path');

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

http.listen(10500, function(){
  console.log('listening on *:10500');
});
它在/path/to/index.html上工作,但其他每个网站页面都会被相同的错误“无法获取”阻止。 有没有办法只在一个页面上运行节点?
谢谢

您的代码所做的只是定义一条路由
/path/to/index.html
,并将其映射到index.html文件。如果您希望提供来自目录(静态html/css/js/任何文件)的文件,可以使用express提供的静态方法:

app.use("/", express.static(__dirname + '/myHtmlDirectory'));
将“myHtmlDirectory”更改为存储文件的任何目录,并确保更改包含以定义express:

var express = require('express');
var app = express();
但是,如果希望所有GET请求指向一个文件,例如index.html,则可以使用以下命令:

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

谢谢你的回复。您的代码工作正常,但是我在访问其他页面(从/path/to/directory)时遇到了相同的错误。我不明白我是否不能在同一个域中保留两个不同的应用程序(节点应用程序和非节点应用程序),或者服务器上的JXCore安装是否有错误您使用的
app.get
是错误的。请参考框架文档,我不认为您的问题与JXcore有关。尝试在本地计算机上运行带有节点的应用程序,您将遇到相同的问题。