nodejs + sqlite3; 路由回调返回空数组

头晕星

我有一个带一些种子数据的sqlite3数据库。我有以下功能,当我从终端运行它时,它可以正常工作:

const db = require('./conn');

function select_user (callback) {

    let q = `select uid, uname, pwd from usr`;

    db.all(q, function (err, rows) {
        if (err) {
            console.log('select error = ' + err)
            callback(err);
        }
        callback(rows);
    });
}

// select_user((d) => {console.log(d)});

module.exports = { select_user };

但是,当我从路由呼叫时,我会得到一个空数组。这是代码:

var  crud = require('../models/crud');
    
router.get('/', function(req, res, next) {
        crud.select_user((d) => { res.render('index.ejs', { title: JSON.stringify(d)})});
})

这将呈现“这是[]页面”,我希望以此呈现返回的数据。我在高低处寻找答案,看到了许多看似有效的示例,但我看不出我在这里可能做错了什么。

附加说明:如果我不使用JSON.stringify(),则结果为“未定义”。

如果它们相关,则这些文件被称为:

conn.js:

const sqlite3 = require('sqlite3').verbose();

const db = new sqlite3.Database('db.sql', (err) => {
    if (err){
        console.log('err' + err);
    }

    console.log('connected to db');
});


module.exports = db;

index.ejs:

<p>this is a
<% if (title) { %>
<%- title %>
<% } %>
page</p>

app.js是标准的Express模板。我尚未对该文件进行任何重大更改。

另一个更新:

我炸掉了文件树,然后重新开始。数据库可以连接并建立usr表并加载数据。现在,当我从路线拨打电话时,我得到了Error: SQLITE_ERROR: no such table: usr

头晕星

问题是我从路由目录发出呼叫后,正在根目录中构建一个新的数据库文件。我期望从models目录中调用crud文件。

为了阻止相对路径,我使用了以下解决方案:

使用node.js处理相对路径

我的conn.js文件现在看起来像这样:

const sqlite3 = require('sqlite3').verbose();
var path = require('path')

db_path = path.join(__dirname, 'db.db');

const db = new sqlite3.Database(db_path , (err) => {
    if (err){
        console.log('err' + err);
    }

    console.log('connected to db');
});


module.exports = db;

希望这可以帮助遇到相同问题的人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

到SQLite3的nodejs接口中的回调问题

来自分类Dev

nodejs sqlite3 查询返回空 - 无法理解异步

来自分类Dev

NodeJS sqlite3获取错误消息

来自分类Dev

作为蓝鸟诺言的nodejs sqlite3 db.run

来自分类Dev

NodeJS AWS Lambda ListObject返回空数组

来自分类Dev

Sqlite3和C,使用回调填充结构

来自分类Dev

无法从 NodeJS 的回调函数返回数据

来自分类Dev

使用sqlite3,nodejs从数据库存储,检索,解析JSON对象的正确方法

来自分类Dev

无法将sha256哈希插入SQLite3表-NodeJs

来自分类Dev

如何在函数中返回节点的sqlite3的结果?

来自分类Dev

rake figaro:heroku返回sqlite3错误

来自分类Dev

Codeigniter不返回任何sqlite3表的行

来自分类Dev

SQLITE3 内部连接返回太多元组

来自分类Dev

将 NSDictionary 数组写入 SQLite3 数据库

来自分类Dev

sqlite3 - 按键数组插入或更新多行

来自分类Dev

如何用ctypes编码和包装sqlite3需要作为回调的python函数?

来自分类Dev

NodeJS回调

来自分类Dev

在nodejs SQLite3 .each()方法中,如何添加多个参数以使用多个“ WHERE ... =?” 查询?

来自分类Dev

mongoDB(在nodeJS中)聚合pipleine返回空数组

来自分类Dev

异步 clojure http-kit 客户端,回调写入数据库 sqlite3

来自分类Dev

NodeJS获得异步返回值(回调)

来自分类Dev

函数内的nodejs回调函数->如何返回结果

来自分类Dev

NodeJs 函数等待直到回调返回值

来自分类Dev

从nodeJS + Express返回空响应

来自分类Dev

NodeJs Mysql 返回空结果

来自分类Dev

回调中的 Nodejs Mysql 回调

来自分类Dev

Javascript(NodeJS)回调范围

来自分类Dev

NodeJS MongoDB回调地狱

来自分类Dev

了解NodeJS中的回调

Related 相关文章

热门标签

归档