繁体   English   中英

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

[英]How can I send a json data and run a index file at the same time in res.resnder? is it even possible?

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

但我得到一个错误

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

错误:已将握手入队后无法将握手入队。 在 Protocol._validateEnqueue (C:\Users\acer\Desktop\nodejsyt\node_modules\mysql\lib\protocol\Protocol.js:221:16) 在 Protocol._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 at Layer.handle [as handle_request] (C:\Users\acer\Desktop\nodejsyt\node_modules\express\lib\router\layer.js:95 :5) 在下一个 (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 ) { 代码:'协议 L_ENQUEUE_HANDSHAKE_TWICE',致命:假 }

Node.js v18.5.0 [nodemon] 应用程序崩溃 - 在开始之前等待文件更改......”

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”作为我的视图模板,这是正确的方式{{firstname}}在索引页面上显示发送的数据。)

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM