如何从React应用程序连接到sqlite数据库?

时间:2019-06-13 15:19:44

标签: reactjs sqlite npm

我正在尝试使用Create React App以及sqlite3模块来构建页面。在它们的默认配置中,这两件事似乎不兼容。一般来说,我是React和JS的新手,所以我希望这里缺少明显的东西。

使用npx v6.9.0和Node v12.4.0,我可以通过键入npx create-react-app testcd testnpm start来重现此内容。

到目前为止,一切都很好。我输入:npm install sqlite3,并收到一个npm警告,提示我应该安装打字稿。好的,我输入npm install typescript。都好。我启动了该应用程序,到目前为止,它已编译。太好了!

我打开App.js,然后根据sqlite3的自述文档在import行下键入var sqlite3 = require('sqlite3').verbose();

这可能是我做错事的地方。我的应用程序现在无法编译,告诉我:

./node_modules/sqlite3/node_modules/node-pre-gyp/lib/info.js
Module not found: Can't resolve 'aws-sdk' in '/Users/brendanlandis/Desktop/test/node_modules/sqlite3/node_modules/node-pre-gyp/lib'

我尝试npm install aws-sdk,这使我走得更远。我的应用仍然无法编译,但是现在错误是:

TypeError: stream is undefined
./node_modules/set-blocking/index.js/</module.exports/<
node_modules/set-blocking/index.js:3

  1 | module.exports = function (blocking) {
  2 |   [process.stdout, process.stderr].forEach(function (stream) {
> 3 |     if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') {
  4 |       stream._handle.setBlocking(blocking);
  5 |     }
  6 |   });

在谷歌搜索中,我还没有弄清楚自己在做什么错。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

ReactJS主要是一个前端框架,您应该创建一个后端服务器。

某些NPM软件包与前端JS应用程序不兼容。

您的React应用程序将调用服务器,然后服务器操纵数据库事务。例如,您可以使用express js。以下有用的文档:

ExpressJS - SQLite doc

API Request from react app