node.js - 如何使用 sqlite3 数据库的节点 api 正确检索数据
问题描述
我正在编写一个简单的 node.js 应用程序,该应用程序从 sqlite3 数据库中检索存储数据。我使用 express 对 API 进行了编码,当我使用 curl 对其进行测试时,它不会检索数据。
我已经测试了 SQL 模型并且它可以工作。
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('********', (err) => {
if (err) {
return console.error(err.message);
}
console.log('Connected to the in-memory SQlite database.');
});
function recordNotFound(message) {
Error.call(this);
this.message = message;
this.status = 404;
}
var Users = function () {};
Users.prototype.getAll = function(callback) {
let sql = 'SELECT * FROM users';
db.all(sql, [], function(err, rows) {
if (err) {
console.log('chao1');
callback(err, null);
} else {
console.log('chao2');
callback(err, rows);
}
});
};
var users = new Users();
users.getAll(function(err, rows) {
console.log(rows);
callback(null, 1);
})
});
另外,做的时候
SELECT * FROM users;
在 sqlite3 终端中,它会正确检索信息。
但是,在我拥有的文件 user_api_router.js 中,
var express = require('express');
userApiRouter = express.Router();
var Users = require('../model/users_sql_model')
var users = new Users();
userApiRouter.get('/', function(req, res) {
users.getAll(function(err, result) {
if (err) {
console.log('control1');
res.status(500).json({message: 'Error retrieving records!'});
return;
}
res.status(200).json(result);
});
});
在我拥有的 index.js 文件中,
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
var usersApiRouter = require('./app/router/user_api_router');
app.use('/v1/user', usersApiRouter);
var port = 3000;
app.listen(port, function(){
console.log('listening on port ' + port);
});
当我运行 index.js 并输入
curl http://localhost:3000/v1/user
它说,
{"message":"Error retrieving records!"}
我不知道如何使用 curl 正确检索记录。请帮帮我!
解决方案
推荐阅读
- angular - FormArray 分页
- node.js - Firebase nodejs admin SDK每次获取实时数据库路径的数据时都会下载数据
- amazon-web-services - AWS - IIS 和 Windows 服务以及 SQL 服务器 - 负载均衡器和高可用性
- regex - 具有修剪功能的密码策略的正则表达式
- php - 如何在单击 ajax wordpress 上创建子类别?
- python - OpenCV安装错误:没有这样的文件或目录“pyopencv_generated_include.h”
- android - Create Folder in External Android Storage (nativescript)
- android - when selected add border shape for textView and editText ,
- php - 网页是否有 pcntl_exec
- node.js - PM2 日志轮换每周配置