如何在res.resnder中同时发送json数据和运行索引文件?这可能吗



我正在尝试呈现索引页并显示从表中获取的数据。

但是我收到一个错误

错误是";C: \Users\acer\Desktop\nodejsyt\index.js:23if(err(throw err;^

错误:在已将握手排入队列之后,无法将握手排入。协议_validateEnqueue(C:\Users\acer\Desktop\nodejsyt\node_modules\mysql\lib\protocol\protocol.js:22:16(协议_enqueue(C:\Users\acer\Desktop\nodejsyt\node_modules\mysql\lib\protocol\protocol.js:138:13(在Protocol.handshake(C:\Users\acer\Desktop\nodejsyt\node_modules\mysql\lib\Protocol\Protocol.js:51:23(在Connection.connect(C:\Users\acer\Desktop\nodejsyt\node_modules\mysql\lib\Connection.js:116:18(在getallparent(C:\Users\acer\Desktop\nodejsyt\index.js:22:20(位于C:\Users\acer\Desktop\nodejsyt\index.js:19:5在Layer.handle[as-handle_request](C:\Users\acer\Desktop\nodejsyt\node_modules\express\lib\router\Layer.js:95:5(在next(C:\Users\acer\Desktop\nodejsyt\node_modules\express\lib\router\route.js:144:13(在Route.dispatch(C:\Users\acer\Desktop\nodejsyt\node_modules\express\lib\router\Route.js:114:3(在Layer.handle[as-handle_request](C:\Users\acer\Desktop\nodejsyt\node_modules\express\lib\router\Layer.js:95:5({代码:"PROTOCOL_ENQUEUE_HANDSHAKE_TWICE",致命:错误}

Node.js v18.5.0[节点]应用程序崩溃-在启动之前等待文件更改">

var hbs = require('hbs');
var path = require('path');
var express = require('express');
var app = express();
app.set('view engine', 'hbs');
//CONNECTION CONFIGURATION
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "mydb"
});
app.get('/', (req,res)=> {
getallparent();
function getallparent(){
return con.connect(function(err) {
if (err) throw err;
con.query("SELECT * FROM parents", function (err, result) {
if (err) throw err;
res.render('index' , result);
});
});
};

});
app.listen(3000);```

您必须删除:
con.connect(function(err) {
当启动连接查询时,它们会自动连接到后台的数据库,因此在您尝试同时创建2个连接的情况下,应该适用于您的是:

return connection.query("SELECT * FROM parents", function (error, results) {
if (error) throw error;
// connected!
res.render('index' , result);
});

所以我终于解决了我的问题,我做得都是正确的,但当我试图在索引页面上显示发送的数据时,我显示错误了(我使用HBS"HANDLEBARS"作为我的视图模板,这是在索引页上显示发送数据的正确方法。(

var express = require('express');
var app = express();
var mysql = require('mysql');
const router = express.Router();
app.set('view engine', 'hbs');
//CONNECTION CONFIGURATION
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "node"
});
// ALL PARENTS
app.get('/index', (req,res)=> {
return con.query("SELECT * FROM parents", function (error, results) {
if (error) throw error;
// connected!
res.render('index',results);
});
});
app.listen(3000);

最新更新