Html TypeError:数据不可编辑
我正在尝试Node.js和sqlite数据库工作,遇到了这个问题,我现在陷入了困境 我的控制台错误是:Html TypeError:数据不可编辑,html,node.js,database,sqlite,Html,Node.js,Database,Sqlite,我正在尝试Node.js和sqlite数据库工作,遇到了这个问题,我现在陷入了困境 我的控制台错误是: TypeError: data is not iterable at db.all (C:\Users\Taylor\Desktop\book\index1.js:30:22) at Statement.errBack (C:\Users\Taylor\node_modules\sqlite3\lib\sqlite3.js:16:21) --> in Database#a
TypeError: data is not iterable
at db.all (C:\Users\Taylor\Desktop\book\index1.js:30:22)
at Statement.errBack (C:\Users\Taylor\node_modules\sqlite3\lib\sqlite3.js:16:21)
--> in Database#all('SELECT id, title FROM Jobs;', [Function])
at app.get (C:\Users\Taylor\Desktop\book\index1.js:26:6)
at Layer.handle [as handle_request] (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\Taylor\Desktop\book\node_modules\express\lib\router\index.js:275:10)
at urlencodedParser (C:\Users\Taylor\Desktop\book\node_modules\body-parser\lib\types\urlencoded.js:91:7)
这是我的js脚本:
app.get('/', async(req, res) => {
const sql = 'SELECT id, title FROM Jobs;'
console.log(sql)
db.all(sql, (err, data) => {
if(err) console.error(err.message)
console.log(data)
let list = '<ol>'
for(const job of data) {
console.log(job.title)
list += `<li><a href="/details/${job.id}">${job.title}</a></li>`
}
list += '</ol>'
console.log(list)
res.render('index', {locals: {Jobs: list}})
})
})
app.get('/',异步(req,res)=>{
const sql='SELECT id,title FROM Jobs;'
console.log(sql)
db.all(sql,(错误,数据)=>{
if(err)console.error(err.message)
console.log(数据)
让列表=“”
for(数据的常量作业){
console.log(job.title)
列表+=``
}
列表+=''
console.log(列表)
res.render('index',{locals:{Jobs:list}})
})
})
我敢打赌您一定出错了。如果(err)没有停止回调,则数据可能未定义。谢谢!我发现是别人干的,更多的是和我的数据库有关。不客气。另一方面,如果您添加一个if块,比如if(err){console.err(err);return;}
,这将阻止回调继续处理其余代码并抛出其他误导性错误。您可能还希望添加一个res.code(500).end('发生错误)
,以便在出现数据库错误时向客户端发送一些内容。快乐编码!