【发布时间】:2018-10-12 20:17:50
【问题描述】:
我对 Node.js 有点陌生。我可以使用 Node.js 将数据从我的 HTML 插入 MySQL,但我无法从 MySQL 获取数据并将其输出到我的 HTML 页面。我已经发布了我在下面完成的代码。我正在努力将数据放入我的 HTML 页面中。
index.html
<form action="/" method="post">
<input id="name" type="text" name="name" placeholder="Type your name...">
<input id="message" type="text" name="message" placeholder="Type message...">
<input class="submit_message" type="submit" value="Send">
</form>
server.js
var express = require('express');
var app = express();
var mysql = require('mysql');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use('/', express.static(__dirname + '/'));
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "mywebsite"
});
connection.connect();
app.get('/', function (req, res) {
connection.connect();
connection.query('SELECT * FROM users', function(err, rows, fields) {
connection.end();
if (err) throw err;
console.log("Data displayed");
});
});
app.post('/', function(req, res) {
var username = req.body.name;
var usermessage = req.body.message;
connection.query("INSERT INTO `users` (Name, Message) VALUES (?,?)", [username.toString(), usermessage.toString()], function(err, result) {
if(err) throw err;
//Output results
console.log(result.affectedRows + ' rows updated. ID is ' + result.insertId);
});
res.sendFile(__dirname + '/index.html');
});
app.listen(3000, function () {
console.log('Connected to port 3000');
});
【问题讨论】:
-
如果您只使用 HTML。你不能做这个。您需要一种诸如 JavaScript 之类的编程语言来实现从服务器获取数据并将其输出到页面上。 JavaScript 有很多方法可以做到这一点。您可以使用
fetchAPI 从服务器抓取数据,然后将其输出到页面上。这是一个帮助您入门的链接:developer.mozilla.org/en-US/docs/Web/API/Fetch_API -
关于如何做到这一点的教程有数千个。你试过用谷歌吗?
-
@Curious13 他只需要查看引擎将数据放入 html 并将其发送给客户端。问题是他没有花足够的时间来了解快递是如何运作的。
-
我正在使用静态中间件。我还需要使用视图引擎吗?
-
查看引擎允许您将 db 中的数据渲染到您的 html 文件中。所以是的,你需要它。
标签: javascript html mysql node.js