Coder Social home page Coder Social logo

"DatabaseError: Can't Load Database" when push() immediately follows a database creation for non-existing file about node-json-db HOT 3 CLOSED

belphemur avatar belphemur commented on July 19, 2024
"DatabaseError: Can't Load Database" when push() immediately follows a database creation for non-existing file

from node-json-db.

Comments (3)

Belphemur avatar Belphemur commented on July 19, 2024

When you create the JsonDB object, the lib will create the file if it doesn't exists and should log: "[JsonDB] DataBase " + self.filename + " created."

In fact, I'm quite sure the program you launch that use the library doesn't have the right to write in the current directory.

Try with a path like /tmp/myDb or any other path that you're sure your program can write to.

from node-json-db.

HowardPautz avatar HowardPautz commented on July 19, 2024

Might be an async bug after all. I'm getting the same error as @vihanP on both a Mac OSX and a linux (Ubuntu) box.

My node / npm install is fresh and clean.
I have full rights to install and code directories, so
installed as:

npm install node-json-db --save

I just copied and pasted the first three lines of code from the first example:

var JsonDB = require('node-json-db');
var db = new JsonDB("myDataBase", true, false);
db.push("/test1","super test");

saved as foobar.js
running node foobar.js

results in

~/0-JS-tests/node_modules/node-json-db/JsonDB.js:204

            throw error;
            ^
NestedError: Can't Load Database
    at DatabaseError.Error (native)
    at DatabaseError.NestedError (~/0-JS-tests/node_modules/node-json-db/lib/Errors.js:7:25)
    at new DatabaseError (~/0-JS-tests/node_modules/node-json-db/lib/Errors.js:29:33)
    at JsonDB.load (~/0-JS-tests/node_modules/node-json-db/JsonDB.js:202:25)
    at JsonDB._getData (~/0-JS-tests/node_modules/node-json-db/JsonDB.js:74:14)
    at JsonDB._getParentData (~/0-JS-tests/node_modules/node-json-db/JsonDB.js:60:44)
    at JsonDB.push (~/0-JS-tests/node_modules/node-json-db/JsonDB.js:142:27)
    at Object.<anonymous> (~/0-JS-tests/node-json-db/foobar.js:10:4)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)

commenting out the third line
// db.push("/test1","super test");
and running again, creates the DB --- and then the samples work.

I also tried to create an empty DB before running the three lines uncommented, by doing merely:
echo > myDataBase.json
but the initial push() still failed with same error. (Not sure how vihanp created his empty version.)

Besides confirming the bug, I wonder if @vihanP is on to something here - that there is some kind of async error here. The reason is that I can get the same error on the second push (), when the first push() worked.

thanks for your efforts - this is a nice idea!

  • H

from node-json-db.

Belphemur avatar Belphemur commented on July 19, 2024

You are both right... Sorry @vihanP
I'm using mkdirp to create directory that are set in the path of the database, for an unknown reason I didn't use the sync version of it, which lead to this bug. I reproduced, tested and corrected it.

I'll release the new version soon. Thanks.

from node-json-db.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.