0

我正在尝试将 sqlite db 文件(kindle vocab.db)发布到 firebase 云函数。然后该函数应该读取文件并做一些事情。但是,它不起作用。我正在使用快递处理请求。请求正文ContentTypemultipart/form-data,一个键是文件。

req.body 是一个缓冲区,如下所示:


----------------------------400426499287718202359095
Content-Disposition: form-data; name="db"; filename="vocab.db"
Content-Type: application/octet-stream

SQLite format 3   @    W   �                                                                W -�&   �    ����I ��  ... and so on

打开数据库抛出异常:

  const db = new sqlite3.Database(req.body.toString());
>  events.js:174 
>        throw er; // Unhandled 'error' event
>        ^
>   
>  Error: SQLITE_CANTOPEN: unable to open database file
>  Emitted 'error' event 

甚至可以打开这样的数据库文件吗?如果是这样,有人知道怎么做吗?

4

1 回答 1

1

根据https://github.com/mapbox/node-sqlite3/wiki/API#new-sqlite3databasefilename-mode-callback上的文档,对于基于磁盘的匿名数据库,构造函数的第一个参数可以是空字符串,":memory:"对于匿名内存数据库或数据库文件的文件路径,结果证明这SQLite format 3 @ W � W -�& � ����I �� ... and so on不是文件系统中的有效文件路径。似乎您正试图将数据库内容作为字符串提供给构造函数,根据文档,这是不合法的。首先将数据库写入文件,然后将文件路径提供给构造函数。

于 2019-07-13T13:09:02.310 回答