【问题标题】:How to fix Error: SQLITE_CANTOPEN: unable to open database on Zeit.co?如何修复错误:SQLITE_CANTOPEN:无法在 Zeit.co 上打开数据库?
【发布时间】:2020-05-28 21:01:22
【问题描述】:

我想连接到我的数据库,它是 sqlite3。这在 localhost 上运行良好,但当我部署到 zeit.co 时出现错误:

Error: SQLITE_CANTOPEN: unable to open database

据我了解,这个问题是因为我们无法获得数据库文件的正确路径。我尝试了一些解决方案,但仍然失败。请帮忙!!!

这是 zeit.co 日志上的错误:

2020-02-13T07:50:40.031Z 4d5a9aed-ae26-4a09-903a-72aa08ca5140 错误未处理的承诺拒绝 {"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"错误: SQLITE_CANTOPEN:无法打开数据库 文件","原因":{"errorType":"错误","errorMessage":"SQLITE_CANTOPEN: 无法打开数据库 文件","代码":"SQLITE_CANTOPEN","errno":14,"stack":["错误: SQLITE_CANTOPEN:无法打开数据库 文件"]},"promise":{"isFulfilled":false,"isRejected":true,"rejectionReason":{"errorType":"Error","errorMessage":"SQLITE_CANTOPEN: 无法打开数据库 文件","代码":"SQLITE_CANTOPEN","errno":14,"stack":["错误: SQLITE_CANTOPEN:无法打开数据库 文件"]}},"堆栈":["Runtime.UnhandledPromiseRejection: 错误: SQLITE_CANTOPEN: 无法打开数据库文件"," 在 过程。 (/var/runtime/index.js:35:15)"," 在 process.emit (events.js:228:7)"," 在 eventToObjectGenerator.promiseCreated (/var/task/node_modules/bluebird/js/release/debuggability.js:258:33)"," 在 activeFireEvent (/var/task/node_modules/bluebird/js/release/debuggability.js:301:44)"," 在 fireRejectionEvent (/var/task/node_modules/bluebird/js/release/debuggability.js:703:14)"," 在 Promise._notifyUnhandledRejection (/var/task/node_modules/bluebird/js/release/debuggability.js:90:9)"," 在 Timeout.unhandledRejectionCheck [as _onTimeout] (/var/task/node_modules/bluebird/js/release/debuggability.js:39:25)"," 在 listOnTimeout (internal/timers.js:531:17)"," 在 processTimers (internal/timers.js:475:7)"]} 发生未知的应用程序错误

这是我连接到 sqlite 的代码

const fs = require('fs');
const path = require('path');

const DBSOURCE = path.join(__dirname, 'mydb.sqlite');

const knex = require('knex')({
    client: 'sqlite3',
    connection: {
        filename: DBSOURCE
    }
});

注意:

  1. 我试过const DBSOURCE = 'mydb.sqlite';
  2. 我试过const DBSOURCE = path.resolve(__dirname, 'mydb.sqlite');

【问题讨论】:

标签: node.js reactjs sqlite next.js vercel


【解决方案1】:

对于那些从谷歌那里跌跌撞撞的人来说,Zeit 现在是 Vercel,并且有一个在无服务器环境中使用 MySQL 的更新示例。

https://github.com/vercel/next.js/tree/canary/examples/with-mysql

【讨论】:

    猜你喜欢
    • 2020-06-10
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多