在node.js(express)中获取MySQL数据并使用EJS进行打印

我正在尝试获取MySQL表的数据并使用EJS以HTML格式打印,但这不起作用.它告诉我打印未定义.我该怎么办?

router.get('/data', function(req, res){
    res.render('print', {req : req, res : res});
    connection.query('SELECT * FROM users', function(err, result) {

        if(err){
            throw err;
        } else {
            for(x in result){
                res.locals.print =  result[x];
                console.log(result[x]);
            }
        }
    });
});
<!doctype html>
<html>
    <body>
        <div>
            <%= print %>
        </div>
    </body>
</html>

解决方法:

在渲染中,您可以返回带有参考数据的JSON变量并在视图中显示. res.render可以是这种方式的最后一条指令.有人喜欢这样:

var obj = {};
router.get('/data', function(req, res){

    connection.query('SELECT * FROM users', function(err, result) {

        if(err){
            throw err;
        } else {
            obj = {print: result};
            res.render('print', obj);                
        }
    });

});

    

<body>
    <table id="table" >  
        <thead>  
            <tr>  
                <th>Username</th>  
                <th>Password</th>  
            </tr>  
        </thead>  
         <tbody>  
         <% print.forEach(function (user) { %>
            <tr>  
                <td><%= user.username %></td>  
                <td><%= user.password %></td>
            </tr>                                   
         <% }) %>
         </tbody>
    </table>   
</body>

</html>

相关文章

根据官网 入门 express
java叫接口control什么的app.get.post等等都是请求方式我们可...
为了前端丢进去的时候可以直接判断中间件就是经过了这个就会...
Express 文件的上传和下载
运行命令下载app.js 增加中间件。
基本模板来的 后面用后就有什么加什么都行。