node.js - 如何处理 node.js 上没有返回数据的 sqlite3
问题描述
我有一个巨大的 Sqlite3 数据库,大小约为 18.3 GB。我正在使用 Node.js、express.js 和 sqlite3 查询它。如果我输入存储在数据库中的电子邮件地址,它会正确显示相关的其他详细信息。但是,如果电子邮件地址不在数据库中,它会无限期地等待响应,直到超时。我已经在我的本地主机和我的虚拟主机上尝试过这个。
我的问题:有没有办法阻止它或处理错误?
我尝试在行上添加一个 if 语句,以查明是否存在包含 err aka err.message 的消息,但结果未定义。
app.get('/api/users/:email', function(request, response) {
const email = request.params['email'];
db.all("SELECT * FROM ents WHERE email = '" + email + "'", function(err, rows){
if(rows) {
response.send(rows);
}
else {
response.send('No Data');
}
});
});
在本地机器 (localhost) 和虚拟主机上,它都会等待响应,直到超时。输出应该是包含与电子邮件地址相关联的各种字段的 json 响应或“否”响应。
解决方案
推荐阅读
- python - Pytorch:如何在执行机器学习之前格式化数据
- css - Flex 以固定尺寸包裹
- linux - 将超时添加到 ping ssh 端口?
- php - codeigniter 中的用户界面
- javascript - 避免多次提交按钮适用于桌面版本,但不适用于 iPhone 等移动版本
- javascript - jquery on change 和 input 函数运行多次
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 3 中的字节 0x97:无效的起始字节
- vue.js - 带有图像标签的 vue.js 动态路由器链接包装
- c - 关于打包结构的大小
- javascript - 我的 ng-repeat 只显示最新的循环