I want to use a child_process to perform a long task in the background without slowing down the whole application.
I'm having trouble requiring the sqlite3 module inside of my child_process. Here's my code:
main.js
const child_process = require('child_process');
const fork = child_process.fork('child.js');
child.js
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('data.db');
Here's what I get:
module.js:487 throw err; ^
Error: Cannot find module 'A:\myretail\clictill_electron\node_modules\sqlite3\lib\binding\node-v57-win32-x64\node_sqlite3.node'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (A:\myretail\clictill_electron\node_modules\sqlite3\lib\sqlite3.js:4:15)
at Object.<anonymous> (A:\myretail\clictill_electron\node_modules\sqlite3\lib\sqlite3.js:190:3)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
package.json:
{
"name": "clictill_electron",
"productName": "Clictill",
"version": "1.0.0",
"main": "main.js",
"dependencies": {
"child_process": "^1.0.2",
"electron": "^1.8.4",
"fibers": "^2.0.2",
"node-gyp": "^3.6.2",
"node-pre-gyp": "^0.8.0",
"request": "^2.85.0",
"sqlite3": "^3.1.13",
"sync": "^0.2.5"
},
"build": {
"files": [
"app/**/*",
"node_modules/**/*",
"package.json"
]
},
"scripts": {
"preinstall": "npm --add-python-to-path='true' --debug install --global windows-build-tools && npm install --global node-gyp && setx PYTHON \"%USERPROFILE%\\.windows-build-tools\\python27\\python.exe\" && npm config set python PYTHON",
"postinstall": "node_modules/.bin/electron-rebuild -v 1.8.2 -w sqlite3 -p",
"start": "electron .",
"release": "build",
"rebuild": "electron-rebuild -f -w sqlite3"
},
"devDependencies": {
"electron-builder": "^10.8.1",
"electron-rebuild": "^1.7.3"
}
}
Any idea where this is coming from?