【发布时间】:2019-05-19 01:44:23
【问题描述】:
我必须为大学项目制作一个必须在桌面浏览器和移动设备上运行的网络应用程序。我必须用 HTML/CSS/JavaScript/Node/MySQL 来做。 我现在了解 node.js 是什么,据我了解,它就像一个 apache,它在客户端请求某些内容时响应发送 HTTP 数据包。我也添加了 Node Express 并实现了 MySQL。 现在我制作了一个带有 ejs 扩展名的页面,其中包含一个 for 循环和一个从数据库中获取的变量的值。现在,我的问题是: 谁执行? (客户端或服务器) MySQL查询的结果列表/数组发送给客户端,然后由客户端根据JavaScript决定必须打印哪一行,还是服务器制作HTML页面直接发送给客户端?
这是节点服务器:
var express = require('express');
var mysql = require('mysql');
var select;
var app = express();
app.set('view engine', 'ejs');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "myPassword",
database: "test"
});
con.connect(function(err) {
if (err) throw err;
con.query("SELECT nome FROM prova", function (err, result, fields) {
if (err) throw err;
select = result;
});
});
app.get('/count/:number', function(req, res) {
res.render('page.ejs', {counter: req.params.number, names: select});
});
app.listen(8081);
这是我请求的页面:
<html>
<head>
<title>Titolo pagina web</title>
</head>
<body><h1>Sto per contare fino a <%= counter %></h1>
<p><%
for (var i = 1; i <= counter; ++i) {
%>
<%= i %> ...
<% } %></p>
<p>Bene, ho finito. Adesso scelgo un nome a caso tra quelli che mi sono stati inviati.
<%= names[0].nome %>
</p>
</body>
</html>
【问题讨论】:
标签: javascript html css mysql node.js