从Node.js文件获取数据并将其显示在HTML/JS页面
问题描述:
我是Node.js的新手,这是我的第一个项目。 我制作了一个名为test.js的node.js文件。它有一个数组说a。从Node.js文件获取数据并将其显示在HTML/JS页面
现在我想制作一个HTML文件,它在按钮单击事件中调用此test.js。然后从该文件获取数据并将其发布到HTML文件的表格中。
我已经写了node.js文件,我可以在console.log(a)上看到结果。但我不知道如何发送这个数组到HTML时,它会要求它。
同时,我搜索并编写了一些代码。请求到达服务器,但我总是从服务器获得错误响应。为什么这样?
客户端 -
function fetch() {
$.ajax({
type: 'POST',
url: "http://127.0.0.1:8888",
data: 'China',
datatype: 'json',
success: function (data) {
alert("hi");
var ret = jQuery.parseJSON(data);
$('#q').html(ret.msg);
},
error: function (xhr, status, error) {
alert("hii");
}
});
服务器端:
http.createServer(function(request, response) {
console.log("Request received");
response.writeHeader(200, {"Content-Type": "application/json"});
request.on('data', function (chunk) {
console.log(chunk.toString('utf8'));
consol.log(result);
response.write(JSON.stringify({data : result}));
});
response.end();
}).listen(8888);
我可以看到中国在console.But我不回去,结果数组返回给客户端。这里的结果是一个数组,我在控制台上获得它的值。只是我没有回到客户端。任何帮助?
答
您应该首先设置服务器来为请求提供服务。我为此使用了expressjs - http://expressjs.com/
这将允许您将nodejs作为Web应用程序运行。
安装在JS明确的路线,以满足您的数据 - http://expressjs.com/api.html#express
var express = require('express');
var app = express();
app.get('/data', function(req, res){
res.send('hello world'); //replace with your data here
});
app.listen(3000);
打开浏览器,然后输入http://MY_SERVER_ADDR:3000/data
,你应该有看到你的输出。
接下来,您需要在您的HTML文件中附加一个甚至是处理程序,它会在触发时触发$ .get()请求。在您的$ .get调用中将以前的网址添加到您的数据中,并使用它进行操作。
$('.my_selector').click(function(){
$.get('http://MY_SERVER_ADDR:3000/data', {}, function(data){
console.log(data)
});
});
这应该让你去。
您需要将nodeJS作为http服务器运行,并根据请求提供数据。然后,您需要更新您的HTML文件,以便在点击按钮时对您的nodejs服务器进行AJAX调用。 – JohnP
@JohnP:感谢您的评论。你能否详细写下它作为答案。我对node.js –