'无法读取未定义'nodeJS的属性'长度'

Tri*_*mma 3 sqlite node.js express pug

我开始使用Node.js,我完全不知道为什么我无法在页面上呈现我的SQL查询结果,我正在使用sqlite3.这是我的index.js文件的一部分

router.get('/students', function (req, res, module) {

var fs = require("fs");
var file = "./test.db";
var exists = fs.existsSync(file);
if (!exists) {
    console.log("Creating DB file.");
    fs.openSync(file, "w");
}

var sqlite3 = require("sqlite3").verbose();
var db = new sqlite3.Database(file);

db.serialize(function () {
    if (!exists) {
        db.run("Create table students ( ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, Nom varchar (255), Prenom varchar (255) );");
    }
});
    db.all('SELECT * FROM students', function selectCb(err, rows, fields) {
        if (err) {
            throw err;
        }
        for (var i in rows) {
            console.log(rows[i]);
        }
        res.render('showResults.jade', {
            results: rows
        });
});
db.close();
res.render('students', { title: 'list' });
});
Run Code Online (Sandbox Code Playgroud)

这是我的Jade(create.jade)文件;

    block content
form(method='get', action='/students/create')
    button(type='submit') Creer
ul
    each item, i in results
        li #{item.Nom} (#{item.Prenom})
        li= JSON.stringify(item)
Run Code Online (Sandbox Code Playgroud)

我把所有这些东西放在我的快递应用程序中,我用我的shell启动它,我收到所有的SQL数据,如下所示:

{ ID: 1, Nom: 'zeze', Prenom: 'zeze' }
{ ID: 2, Nom: 'ertty', Prenom: 'uuuuuuuuuuu' }
Run Code Online (Sandbox Code Playgroud)

但我/学生页面显示一条消息

http://i.stack.imgur.com/ormUG.png

你能帮帮我吗,我真的很绝望.(抱歉我的英文不好我是法国人)^^

par*_*ite 6

res.render('students', { title: 'list' });
Run Code Online (Sandbox Code Playgroud)

这条线

each item, i in results
Run Code Online (Sandbox Code Playgroud)

变量名称不匹配.

从图片中,我可以看到你正在渲染被调用的页面students.jade.对于该页面,您正在向titleJade 发送变量,但您声明该变量将results在Jade中调用.