node-sqlite | SQLite bindings for Node.js | Runtime Evironment library
kandi X-RAY | node-sqlite Summary
kandi X-RAY | node-sqlite Summary
Documentation lives at The code lives at The two files required to use these bindings are sqlite.js and build/default/sqlite3_bindings.node. Put this directory in your NODE_PATH or copy those two files where you need them. Tested with Node version v8.4.0 (may not work with older versions).
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of node-sqlite
node-sqlite Key Features
node-sqlite Examples and Code Snippets
Community Discussions
Trending Discussions on node-sqlite
QUESTION
I've been trying to download sqlite3@4.2.0
, however it's been giving me an error. Here are the logs when trying to run npm install
:
ANSWER
Answered 2021-Jun-10 at 23:55For fixing the errors try the following :
clean the npm cache
QUESTION
I'm using better-sqlite3 on Node
, but I suspect my questions are applicable to node-sqlite3 as well.
I basically have 2 simple questions, relating to a server-rendered website:
Do I need to explicitly call
.close()
on the database? I seem to remember reading somewhere that it will automatically close when the current scope (like the current function) exits. What if I never call.close()
in a web server scenario, taking a lot of requests?If you have a bunch of different components (authentication, authorisation, localisation, payment, etc...) and each component may or may not need to access the database throughout the lifetime of a request (which are quite short-lived, except for payment), is it better to
- have one db connection for the lifetime of the server and pass that around
- have one db connection for the lifetime of the request and pass that around
- open a new connection every time I need something, maybe 2-3 times per request (and close it either explicitly or implicitly when the function returns, if that's a thing)
Thank you
...ANSWER
Answered 2021-Apr-03 at 18:39Joshua Wise's (better-sqlite3
's creator) answer over on GitHub:
Database connections are automatically closed when they are garbage collected, which is non-deterministic. If you want to know that the connection is closed (rather than guessing), you should call .close().
You can just open one database connection for the entire thread (the entire process if you're not using worker threads), and share that connection between every request. Node.js is single-threaded, so you don't have to worry about simultaneous access, even if multiple requests are being handled concurrently. The one caveat is that you should never have a SQLite transaction open across multiple ticks of the event loop (i.e., don't use await between BEGIN and COMMIT), because then other requests could accidentally inject SQL into your transactions. Also, SQLite transactions are serialized (you can't have more than one at a time), so you should open and close them as quickly as possible; keeping them open across ticks of the event loop is bad for performance.
QUESTION
I want to install pyproj on Debian on Docker.
This is my script:
...ANSWER
Answered 2020-Nov-11 at 21:15https://pyproj4.github.io/pyproj/stable/installation.html
I would recommend either:
- Upgrade to pip>=19 so PROJ 7.2 is in the wheel.
ENV PROJ_DIR=/path/to/proj/install
and when you install PROJ:./configure --prefix $PROJ_DIR
QUESTION
I'm programming a website to search in a sqlite database. I'm using node-sqlite3 in my backend, this is my code.
...ANSWER
Answered 2020-Sep-01 at 09:57So, I created a sorting function to sort it right after running the query and getting the results. I reported this issue to the github repository. This is the sorting function.
QUESTION
I'm struggling with some basic async/await problem in node.js using node-sqlite3.
My objective is to select some value from SQLite DB, check it for some condition and take some actions in case the condition is met. Here's the code:
ANSWER
Answered 2020-Jun-18 at 19:17Since you want to use async/await
, and the node-sqlite3 (sqlite3) library does not support the Promise API, you need to use the node-sqlite (sqlite) library, which is a wrapper over sqlite3
and adds support for the Promise API. Then, your code will look something like this:
QUESTION
I'm using node v14.2 and sqlite3: https://github.com/mapbox/node-sqlite3
I'm trying to determine if a table exists, and if it does, make a query against it. I've tried:
...ANSWER
Answered 2020-May-20 at 05:24The issue I see in your code is, the console.log is outside of the callback function.
QUESTION
I'm trying to checkout a specific commit that I see on GitHub:
https://github.com/mapbox/node-sqlite3/commit/b8907e79fc3fb52803b5a05c106948911dcd77ac
However, a local checkout fails:
...ANSWER
Answered 2019-Sep-11 at 00:22That commit was in that repository at one time.
It was subsequently deleted from the repository, so new clones of that repository do not get that particular commit. (Deletion is a bit tricky, but for example, this can happen because a pull request gets modified—the commit was there because of the pull request, then the pull request itself gets updated with new-and-improved commits. The replacement commit is the one ultimately used, and the original expires on its own after a few more days.)
It still is present on GitHub because GitHub does not always clean out everything immediately. In this case, however, they have not cleaned things out for quite a long time, and it's not clear why it's still accessible via the GitHub web interface at all. This commit is not reachable from a pull request either (there are 218 pull requests hanging on to commits but this is not among them). I wonder if links from "issues" pages might also keep otherwise-unreachable commits alive, on GitHub.
Following this commit backwards, through its parent links on GitHub, reveals a whole sequence of commits that seem to have been replaced with new-and-improved versions at some point.
QUESTION
I have a javascript application that I've implemented for mobile apps using react-native and its desktop counterpart using the electron framework. The mobile application uses react-native-sqlite-storage native module to save preferences and data (5 - 6 tables) whereas I use node-sqlite3 for the electron app.
Both, the mobile and desktop apps share a lot of functionality but due to the use of different database plugins, have a lot of differences. Also, for the desktop app, as node-sqlite3 is a native dependency, I have to build the app installers for Windows and macOS separately. That's a pain!
So, what I need is a database solution that is :-
- embeddable into the app
- efficient and performant compared to sqlite3
- supports syncing to a remote database
- supports macOS, Windows, and Linux
- encrypts the data written within the database
- consistent API across JS runtimes (Browser / NodeJS / JavascriptCore)
Here's a list of those that I've come across and that seem appealing:-
So, what are your suggestions and how have you implemented anything similar for your apps?
...ANSWER
Answered 2019-May-29 at 12:43I've been testing PouchDB, RxDB (which relies on PouchDB with RxJS streams for queries), Realm-JS (native database like sqlite3), FireStore. NeDB doesn't support remote sync.
I won't go into performance metrics details on each database, but PouchDB has been very slow and heavy on memory when querying more than 20.000 items (tried with indexeddb/websql adapter).
RxDB was generally much faster with that many items, especially when subscribing to query changes (tried with indexeddb/websql adapter too). Also schema and migrations are very handy.
FireStore is a good choice and comes with very easy setup of server and client components, but you'll need to be comfortable to run on a google platform. There is some flexibility with firebase functions if you want some control over server logic and there is customizable ACLs for your collections. Speed has been good and on par with RxDB. Comes with a very good auth module if you want it.
If you want to be able to scale much much more on the client side, which you probably don't, or if you want to make complex queries, I'd really recommend using something like realm. You'll need to compile for each platform like you've experienced with sqlite3, but there is sync, offline persistence, rich queries and great performance. There is just no way that javascript based solutions like PouchDB, RxDB or FireStore can compete, even with sqlite backends, since much of the computation will still happen in your precious JS thread. realm is doing much of its heavy lifting on the native library. I've been able to do LIKE "abc" queries on 100.000 items, returning hundreds of results, within less than hundred milliseconds and without noticeably freezing my UI or pumping up memory usage heavily. Supports client migrations too, which is nice.
In the end, there are multiple answers: 1. Want to host everything yourself and don't need massive scale client side (you can sync against subsets of your server data with filters), RxDB ist very good and comes with nice set of features. 2. Want very easy setup, nice modules like auth, server functions etc, and don't need massive scale on the client (can also sync against server data subsets with filters), FireStore is great. 3. Need lots of lots of data on the client, realm is my preference. I personally really dislike the realm sync platform for its pricing model (though technically it's cool), but the database itself is free and maybe you could try and implement a custom sync.
Take my results with a grain of salt, I've had some very specific challenges like large, non-relational collections and fulltext-search, your use-case will probably differ a lot.
QUESTION
Background
When I try and build node-sqlite3
within Electron
it fails when trying to download the binding for Electron on Windows.
Example
...ANSWER
Answered 2019-May-14 at 22:43I believe you found the answer after opening this issue. Wanted to go ahead and answer this question for others struggling.
Issue Opened: https://github.com/mapbox/node-sqlite3/issues/1163
Actual binding: https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.0/electron-v4.0-win32-x64.tar.gz
QUESTION
I've got the following code in my nodejs app as part of an expressjs service:
...ANSWER
Answered 2019-Apr-06 at 01:47You're using exec
wrong. The promisified version of Database#exec only takes a single argument, the SQL to execute.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
Install node-sqlite
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page