javascript - 为什么我的查询结果不会显示在 Express 上的表中?

标签 javascript mysql node.js express

我尝试通过调用 Express 中的 API 来显示 SQL 查询的结果,但结果未显示。我可以在控制台中将它们视为数据包数组,但无法显示它们。

var express = require('express');
    var router = express.Router();

    var passport = require ('passport');

    var bcrypt = require('bcrypt');
    const saltRounds = 10;
    const mysql = require ('mysql');
    const path = require('path')

    const hbs = require('hbs');
    var bodyParser = require('body-parser');
    var urlencodedParser = bodyParser.urlencoded({ extended: false });
    var { check, validationResult } = require('express-validator/check'); 

    router.use(bodyParser.json());

   // most of body code omitted

    router.get('/tableResults',(req, res) => {
        console.log(req.session.passport.user);
        const db = require('./db_connection.js');
        var id = req.session.passport.user;

        db.query('SELECT * FROM testResults where id = ?',[id],function(error, results, fields) {  // results are displayed where the user ids match
            if(error) throw error;

             // JSON.parse(JSON.
             console.log(results);

             if ( results = null ) {
                res.redirect('/home');

             }; 
             res.render('tableResults',{
                results: results
             });
            });
    });
 <html lang="en">  // the correspontiong .hbs page to be rendered with results
    <head>
        <meta charset="utf-8">
        <title>Test Results</title>

    </head>
    <body>
      <div class="container">
        <h2>Test Results</h2>
            <button class="btn btn-success" data-toggle="modal" data-target="#testResults">Add New</button>
        <table class="table table-striped" id="mytable">
          <thead>
            <tr>
              <td> Test id</td>
              <th>Grade 1s</th>
              <th>Grade 2</th>
              <th>G3</th>
              <th>Action</th>
            </tr>
          </thead>
          <tbody>
             {{#each results}}
            <tr>
              <td>{{ test_id: results }}</td>
              <td>{{ gradeOne }}</td>
              <td>{{ gradeTwo }}</td>
              <td>{{ gradeThree }}</td>
              <td>
                <a href="javascript:void(0);" class="btn btn-sm btn-info 
        edit" data-id="{{ test_id }}" data-grade-one="{{ gradeOne }}" data- 
        grade-two="{{ gradeTwo }}" data-grade-three="{{ gradeThree }}>Edit 
        </a>
                 <a href="javascript:void(0);" class="btn btn-sm btn-danger 
        delete" data-id="{{ test_id }}">Delete</a>
              </td>
            </tr>
            {{/each}}
          </tbody>
        </table>
      </div>

我不知道为什么我在页面上看不到结果,因为数据在控制台中。我的 layout.hbs 页面中也链接了 jQuery CDN

最佳答案

在代码 if ( results = null ) {...} 中,您将使用 重新分配(“=”是赋值运算符)results >null 值。您的 console.log 就在您进行重新分配之前。

而是使用相等运算符

if ( results == null ) {
  res.redirect('/home');
}; 

关于javascript - 为什么我的查询结果不会显示在 Express 上的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272739/

相关文章:

javascript - Bootstrap-Vue 坏了吗?

MySQL 使用 bool 条件执行慢速查询

node.js - 在 Apache、.htaccess 配置和 PHP 后面运行 Node.js

javascript - 每当将函数添加到数组中时,如何从充当队列的数组中执行函数?

javascript - 如何在使用 jQuery 进行实时搜索时隐藏 div

javascript - 如果使用 document.write,则无法以编程方式插入 js

javascript - knockout 可拖动可排序映射克隆更改

php - 打开时出现 WAMP 服务器 2 错误

php - 如何限制MySQL查询结果为特定结果?

javascript - ES6 中的解构赋值与对象属性访问