Report this

What is the reason for this report?

EJS Reference Error

Posted on November 23, 2016
Mayk

By Mayk

I have a Node.JS application that is hosted on Ubuntu 16.04. I am using EJS to display queried data from MySQL but I am getting a reference error like this

ReferenceError: /home/michaeluy/apps/michaeluy.me/views/index.html:130
 128| </div><br/><br/>
 129|         
 >> 130| <%=sec%>
 131| </div>
 132| </div>
 133| </body>

 sec is not defined
 at eval (eval at compile (/home/michaeluy/apps/michaeluy.me/node_modules/ejs/lib/ejs.js:485:12), <anonymous>:11:23)
 at returnedFn (/home/michaeluy/apps/michaeluy.me/node_modules/ejs/lib/ejs.js:514:17)
 at View.exports.renderFile [as engine] (/home/michaeluy/apps/michaeluy.me/node_modules/ejs/lib/ejs.js:358:31)
 at View.render (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/view.js:126:8)
 at tryRender (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/application.js:639:10)
 at EventEmitter.render (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/application.js:591:3)
 at ServerResponse.render (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/response.js:961:7)
 at /home/michaeluy/apps/michaeluy.me/server.js:15:9
 at Layer.handle [as handle_request] (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/router/layer.js:95:5)
 at next (/home/michaeluy/apps/michaeluy.me/node_modules/express/lib/router/route.js:131:13)

and here is the first bit of my server.js file:

var http = require('http');
var express = require('express');
var fs = require('fs');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection  = require('express-myconnection');
var app = express();

app.use('/',express.static(__dirname + '/'));
app.use(bodyParser.urlencoded({ extended: false }));
app.engine('.html', require('ejs').__express);
app.set('view engine','html');

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

app.get('/', function(req, res){
    connection.query("SELECT * FROM messages", function(err, rows, fields){
        if (err) throw err;
        res.render('index', {
            sec: rows[0].name
        });
     });
 });

I have tried using console.log at first to see if it is able to query the data correctly and it did but when I set the code on the html file for it to show up on the page itself. It gives back a reference error.

Hope someone can help here. Thanks in advance

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.