如何从另一个HTML文件中获取元素

时间:2017-09-02 16:02:33

标签: javascript jquery html node.js get

我正在尝试创建一个node.js应用程序,该应用程序从HTML文件中的文本框中获取输入。我想将这个值存储在一个数组中,虽然我不知道如何。我的总体目标是创建一个聊天应用程序,我假设有一些更简单的方法来获取输入而无需引用HTML文件。

此外,是否有任何html文件的模板,因为我不够熟练使用HTML来制作一个体面的网页。所以,如果有一些我可以使用的模板,一切看起来都会更好。

我的代码:

var events = require('events');
var express = require('express');
var http = require('http');
var app = express();

var msg = [];

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

app.read('/', function() {

});

app.listen(3000, function() {
  console.log("Server is running on port " + 3000);
});
#firstHead {
  font-family: Georgia, 'Times New Roman', Times, serif;
}
<header>
  <h1 id='firstHead'>
    This is a header!
  </h1>
</header>
<body>
  <input type="text" id="inText" placeholder="Enter text here" />
</body>

帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

首先,您的HTML代码有很多错误。这是您的代码的正确版本(您不会使用它,它只是为了让您了解您已经完成的错误):

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
    <style>
        #firstHead {
            font-family: Georgia, 'Times New Roman', Times, serif;
        }
    </style>
</head>

<body>
    <h1 id='firstHead'>
                	This is a header!
            	</h1>
    <form id="msg" method="GET" action="/msg">
        <input type="text" name="msgContent" id="inText" placeholder="Enter text here" />
        <input type="submit" value="Send">
    </form>
</body>

</html>
&#13;
&#13;
&#13;

现在这个HTML页面会将输入内容作为POST请求See here for more details发送到localhost:3000/msg,这里的问题是该页面将被刷新或重定向(根据您的实现,您应该在这种情况下使用AJAX如果你想要SPA)。即使您使用了AJAX,您也很难使用HTTP请求实现聊天应用程序。使用WebSocket协议来实现此功能会更好。有一个名为Socket.io的模块可以为您提供很多帮助。它有一个事件驱动系统,因为它非常适合实时应用,你可以查看他们的官方网站;他们有一个用几百行代码编写的聊天应用程序的例子。

现在让我们转到您的服务器端代码,首先......没有名为read的快递方法,这里是您的代码的工作版本:

&#13;
&#13;
var express = require('express');
var http = require('http');
var app = express();

var msg = [];

app.get('/', function(req, res){
    //You should use some template engines like EJS or Pug to render your HTML page with messages or the user will see nothing
    res.sendFile(__dirname + '/index.html');
});

app.get('/msg', function(){
    msg.push(req.query.msgContent);
    res.redirect("/");
});

app.listen(3000, function(){
    console.log("Server is running on port " + 3000);
}); 
&#13;
&#13;
&#13;

上面的代码将按原样运行,但是您在客户端看不到任何内容,因为您没有呈现(或将msg数组发送到客户端脚本以嵌入它)。我只是想让你明白,不要给你实现你的想法

我希望这对你有所帮助。