Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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 使用express server打开新的html页面_Javascript_Html_Node.js_Express - Fatal编程技术网

Javascript 使用express server打开新的html页面

Javascript 使用express server打开新的html页面,javascript,html,node.js,express,Javascript,Html,Node.js,Express,我有一个带有两个按钮的登录页面。我希望当我点击register按钮时,会打开一个新的html页面(register.html)。所有文件都位于同一文件夹中 到目前为止,我尝试的是: 我的index.html文件(主页): Javascript文件: var express = require('express'); var lastResult = ''; var app = express(); var path = require('path'); var bodyParser = req

我有一个带有两个按钮的登录页面。我希望当我点击register按钮时,会打开一个新的html页面(register.html)。所有文件都位于同一文件夹中

到目前为止,我尝试的是: 我的index.html文件(主页):

Javascript文件:

var express = require('express');
var lastResult = '';
var app = express();
var path = require('path');

var bodyParser = require('body-parser');
app.use(bodyParser());

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

app.get('/register',function(req,res){
  res.sendFile('/register.html');
});

app.listen(3000);
function RegisterUser() {
    $.get("/register", function(res){

    });
}
还有注册,html文件,我想在点击后打开。 我试图在JS文件上创建一个“RegisterUser()”函数,该函数调用服务器上的get函数。 我对node.js和express server的世界都是新手。如果这不是正确的方法,请纠正我

谢谢

我希望当我点击register按钮时,会打开一个新的html页面(register.html)

您正在发出一个Ajax请求,然后对服务器发送的数据不做任何处理

如果你想打开一个新页面…只需使用一个链接

<a href="/register">Login</a>

如果您只想将用户重定向到另一个页面而不使用


我认为使用服务器所在的server.js文件来执行前端客户端的功能不是一个好主意。我通常有两个文件,
index.js
,这是我的服务器文件,也是node.js读取的文件,然后我有
client.js
,这是发送到客户端的文件。这有助于使事情变得更简单。

您只需更改register按钮的
onClick属性,将浏览器指向register页面,js服务器就会发送html文件

<input type="button" onclick="window.open('http://localhost:3000/register')" value="Login"></button> 

以上内容将在新选项卡中打开,要从当前选项卡重定向,请使用:

<input type="button" onClick="location.href='http://localhost:3000/register'" value="Login"></button>


如果您没有在本地运行应用程序,请用IP替换localhost,希望这有帮助

开放是什么意思?好像你想进入一个新的页面?不管怎样,你为什么不直接用锚定标签而不是按钮呢?用
替换
,然后适当设置锚定标记的样式,使其与其他按钮匹配。它不起作用。它只是把我转到“file:///C:/register“(文件位于其他文件夹中),即使我将其移动到C,它也不会打开它。@Ohad121-这是因为您直接从磁盘而不是从Express Web服务器加载了
index.html
。您能解释一下我如何在本地运行此程序吗?嗯
node server.js
谢谢你的帮助。但我是如何通过点击按钮来实现的?那是行不通的。绝对URL必须从一个方案开始(无论如何,没有理由首先使用绝对URL)。我想构建一个web应用程序。我不想用服务器打开新页面吗?thanks@Ohad121我认为,您可以使用服务器脚本打开一个新网页。如果使用
socket.io
,可以要求服务器将用户重定向到新页面。如果没有
socket.io
,客户机和服务器之间的通信将困难得多。如果您想看一看,我已经链接了它。@Ohad121您的代码不起作用的另一个原因是您的javascript文件没有与服务器文件通信。为此,请检查socket.io。在那里,您可以从客户端发出请求,通知服务器执行特定任务。然后,您可以告诉服务器是否返回响应。
window.location.replace('your link')
window.location.replace('register.html`)
<input type="button" onclick="window.open('http://localhost:3000/register')" value="Login"></button> 
<input type="button" onClick="location.href='http://localhost:3000/register'" value="Login"></button>