简体   繁体   English

犯错 ReferenceError:未定义文档

[英]throw err; ReferenceError: document is not defined

Router page 路由器页面

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

    /* GET home page */
    router.get('/', function(req, res, next) {
        res.render('mysql', {
            title: '',
        });
    });

    var connection = mysql.createConnection({
        host : '',
        user : '',
        password : '',
        database : ''
    });

    connection.connect();        
    connection.query('SELECT hashtag from recipients', function(err, rows, fields) {
      if (!err) {
        console.log(rows);        
            document.getElementById('recipients').innerHTML = rows;        
    }
      else {
        console.log('Error while performing Query.');
    }

    });        
    connection.end();        
    module.exports = router;

Views page 视图页面

<html>
<head>

</head>
<body>
<p id='recipients'></p>
<p id='error'></p>

<script>
</script>

</body>
// db.js
var connection = mysql.createConnection({
    host : '',
    user : '',
    password : '',
    database : ''
});
connection.connect();
module.exports = connection;

...
// router.js
var db = require('db.js')

router.get('/', function(req, res, next) {
    db.query('SELECT hashtag from recipients', function(err, rows, fields) {
        if (err) {
            return next(err); // or res.send(err.message);

        res.render('mysql.html', {
            title: '',
            recipients : rows   
        });
    }); 
});

module.exports = router;

// mysql.html
<html>
<head>
    <title>{{title}}</title>
</head>
<body>
    {{recipients}}
</body>
</html>

Node.js may be java-script but there is a major difference between Node.js and conventional java-script used in browser. Node.js可能是Java脚本,但是Node.js与浏览器中使用的常规Java脚本之间存在很大差异。 Node.js is is a server side platform much like php or python that you use to write web application or any other type of application, Javascript that runs on browser is client side used to manipulate DOMs and for many other purposes. Node.js是一个服务器端平台,非常类似于php或python,可用于编写Web应用程序或任何其他类型的应用程序。运行在浏览器上的Javascript是客户端,用于操作DOM和许多其他目的。 Now there is plenty of things you did wrong. 现在有很多事情你做错了。

 var express = require('express'); var router = express.Router(); var mysql = require('mysql'); /* GET home page */ router.get('/', function(req, res, next) { var connection = mysql.createConnection({ host: '', user: '', password: '', database: '' }); connection.connect(); connection.query('SELECT hashtag from recipients', function(err, rows, fields) { if (!err) { console.log(rows); //send rows to template engine to render HTML. res.render('mysql', { rows: rows, }); } else { console.log('Error while performing Query.'); } }); connection.end(); }); 
 <html> <head> <title>something here</title> </head> <body> <table> <tr>some heading</tr> <% for(var i=0; i< rows.length; i++) {%> <tr> <td> <!-- row[i].key access some value from object --> <%= row[i].someKey%> </td> </tr> <% } %> </table> </body> </html> 

Now i have made a assumption that you use EJS as your template engine. 现在,我假设您使用EJS作为模板引擎。 And this is not a working example just a snippet on how this should work. 这不是一个可行的示例,只是有关其工作方式的摘要。 May be this tutorial helps with what you are trying to do. 可能是教程有助于您尝试做的事情。 You should read this 你应该读这个

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

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