gpt4 book ai didi

node.js - '无法读取未定义的属性 'length'' nodeJS

转载 作者:搜寻专家 更新时间:2023-10-31 23:48:31 26 4
gpt4 key购买 nike

我刚开始使用 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' });
});

这是我的 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)

我把所有这些东西都放在我的 express 应用程序中,我用我的 shell 启动它,我收到了这样的所有 sql 数据:

{ ID: 1, Nom: 'zeze', Prenom: 'zeze' }
{ ID: 2, Nom: 'ertty', Prenom: 'uuuuuuuuuuu' }

但是我的/students 页面显示一条消息

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

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

最佳答案

res.render('students', { title: 'list' });

还有这一行

each item, i in results

变量名不匹配。

从图中可以看出,您正在渲染名为students.jade 的页面。对于该页面,您正在向 Jade 发送变量 title,但您声明该变量将在 Jade 中称为 results

关于node.js - '无法读取未定义的属性 'length'' nodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24550861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com