【发布时间】:2019-05-06 16:07:19
【问题描述】:
我在尝试将用户发布到我的用户数据库时收到此错误。我以前做过类似的项目,但从来没有遇到过这个错误。
“错误号”:14, “代码”:“SQLITE_CANTOPEN”
我已经查看了这个问题,但大多数都没有解决方案或没有使用 knex。 编辑:添加 knexfile.js。
//-----------my routes file---------
// imports
const axios = require("axios");
const bcrypt = require("bcryptjs");
const db = require("../../../data/dbConfig");
// import middlewares from file
const { generateToken, protected } = require("../../middlewares/middlewares");
// exports
module.exports = server => {
server.post("/api/post/usertodb", createUser);
server.get("/api/get/userfromdb"), getUser;
};
function createUser(req, res) {
const newUser = req.body;
console.log(db);
db("users")
.insert(newUser)
.then(ids => res.status(201).json(ids[0]))
.catch(err => res.status(500).json(err));
}
//--------my dbConfig file is-----------
const knex = require("knex");
const knexConfig = require("../knexfile");
module.exports = knex(knexConfig.development);
//--------my server.js file-------------
// imports
const express = require("express");
const cors = require("cors");
// configure routes
const configureRoutes = require("../config/routes/users/userRoutes");
// instantiate server
const server = express();
server.use(express.json());
server.use(cors());
configureRoutes(server);
// export server
module.exports = {
server
};
//----------knexfile.js---------
module.exports = {
development: {
client: "sqlite3",
connection: {
filename: "./data/filmsydb.sqlite3"
},
useNullAsDefault: true,
migrations: {
directory: "./data/migrations"
},
seeds: {
directory: "./data/seeds"
}
}
}
【问题讨论】:
-
knexfile中有什么内容?另外,确保数据库文件存在并且可读 -
数据库存在并且可以用我的sqlite数据库浏览器打开。我将添加 knexfile。
标签: node.js sqlite express knex.js