【发布时间】:2022-10-01 01:49:24
【问题描述】:
我正在建立一个模型网站来尝试学习 NodeJS。我想要一个登录系统,我正在尝试将我的注册页面与我的数据库脚本连接起来。向数据库发送查询的 sql 函数按预期工作,但是,当尝试从管理注册网页的脚本中调用查询函数时,我得到的只是错误 500。
如果有人能指出我正确的方向会很酷,这肯定是我还不知道的 NodeJS 的一些怪癖。
这是我的注册页面脚本,它应该从 POST 路由中调用查询函数:
var express = require(\'express\');
var router = express.Router();
var db = require(\'../public/javascripts/dbController\');
router
.get(\'/\', function(req, res, next) {
res.render(\'register.html\', {title: \'Register\'})
})
.post(\'/\', function(req, res, next) {
register(req.body);
res.render(\'register.html\', {title: \'Register\'})
})
function register(request)
{
let username = request.login;
let password = request.password;
let sql = \"INSERT INTO users (user_username, user_password, user_status) VALUES (\"+username+\"\',\"+password+\"\', 1);\";
console.log(\"query\");
//Why is this not working?
db.query(sql);
}
module.exports = router;
这是(部分)我的 dbController 脚本:
const sqlite3 = require(\'sqlite3\').verbose();
let db = new sqlite3.Database(\'./public/database/db.db\', sqlite3.OPEN_READWRITE, (err) => {
if (err && err.code == \"SQLITE_CANTOPEN\") {
createDatabase();
return;
} else if (err) {
console.log(\"Getting error \" + err);
exit(1);
}
});
//This function is not running when I ask for it in register.js
function query(sql){
console.log(\"running query: \" + sql)
db.all(sql, [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.name);
});
});
}
module.exports = query;
我想我可能必须通过主应用程序脚本来路由我的脚本,或者我导出错误?无论如何,任何朝着正确方向轻推都会很棒,因为我已经坚持了几天。谢谢!
-
当您收到 500 错误时,您需要检查服务器错误日志以查看详细原因。
-
向xkcd.com/327敞开大门
标签: javascript node.js node-sqlite3