javascript - 如何检查sqlite3 nodejs中是否存在表
问题描述
我正在使用 Express 构建应用程序,在一个端点上,我通过此代码在 sqlite3 中生成了一个表
db.serialize(() => {
db.prepare(`CREATE TABLE IF NOT EXISTS ${req.body.tablename}(id TEXT)`).run().finalize();
db.close();
});
然后我有另一个端点使用此代码检查表是否存在
db.get(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`, req.param.name, (err, row) => {
console.log(row)
});
但是当我 100% 确定表已创建并存在时,行显示为未定义。
解决方案
将您的代码更改为此:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('guy.sqlite'); //':memory:'
db.serialize(() => {
db.prepare(`CREATE TABLE IF NOT EXISTS tb1 (id TEXT)`).run().finalize();
db.get(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`, 'tb1', (err, row) => {
console.log(row)
});
db.close();
});
推荐阅读
- css - 复选框单击输入。其他帖子的复选框被选中
- ruby-on-rails - 如何在 Rails 中创建具有多向关联的三重嵌套对象
- python - 使用python列出索引超出范围错误 - 线性搜索代码
- .net-core - .NET Core DbContext 阻止后续请求
- python - Two functional functions when called together creates an error
- automationanywhere - 我需要在名称中包含“RPA”的文件夹中打开一些文件。那么我怎样才能在任何地方的自动化中做到这一点呢?
- c++ - PyTorch C++ 扩展:访问半张量的数据
- json - React-Native: Parsing Simple JSON GET/POST and Refresh every X Seconds
- c# - 可以将 ASMX Web 服务制作成 REST api 吗?
- laravel - 使用 laravel 的 cron 作业向用户发送电子邮件