当前位置: 首页 > 知识库问答 >
问题:

Electronic应用程序在需要SQLITE3时遇到异常

郭意
2023-03-14

package.json

"name": "billingapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"rebuild": "electron-rebuild -f -w billingapp"
},
"author": "S Kundu",
"license": "ISC",
"dependencies": {
"electron": "^1.7.11",
"sqlite3": "^3.1.13"
}
"devDependencies": {
"electron-rebuild": "^1.7.3"
}

index.js

const electron  = require('electron');
const path      = require('path');
const url       = require('url');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(path.join(__dirname, 'sample.db'));

const {app, BrowserWindow, Menu, ipcMain} = electron;

let mainWindow;

app.on('ready', function(){


// Create the login window
mainWindow = new BrowserWindow({
  resizable: true,
  fullscreen: false
});

// Load html in window
mainWindow.loadURL(url.format({
  pathname: path.join(__dirname, 'login.html'),
  protocol: 'file:',
  slashes: true
}));
});

login.html

<h1>Welcome to billing system</h1>

这些是代码文件。

安装NPM软件包的步骤

npm install electron
npm install sqlite3

当我移除贝娄代码时,它的工作非常完美:

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(path.join(__dirname, 'sample.db'));

但是使用这段代码,在运行时

npm start

正在获取贝娄错误:

应用程序在加载过程中抛出错误

错误:在module._resolveFileName(module.js:470:15)在function.module._resolveFileName(C:\users\sintu\desktoch\billingsystem\node_module\electronic\dist\resources\electronic.asar\common\reset-search-paths.js:35:12)在function.module._load(module.js:418:25)在module.require(module.js:498:17)在required((C:\users\sintu\desktop\billingsystem\node_modules\sqlite3\lib\sqlite3.js:4:15)对象。(C:\users\sintu\desktoes\billingsystem\node_module\sqlite3\lib\sqlite3.js:190:3)在module._compile(module.js:571:32)在object.module._extensions.js(module.js:580:10)在module.load(module.js:488:32)

当我运行npm run rebuild时,我得到了bellow错误

×重建失败

在electron-rebuild构建此解决方案中的项目时,出现了一个未处理的错误。要启用并行构建,请添加“/M”开关。C:\users\sintu\desktop\billingapp\node_modules\sqlite3\build\deps\action_before_build.vcxproj(20,3):错误MSB4019:找不到导入的项目“C:\microsoft.cpp.default.props”。确认声明中的路径是正确的,并且文件存在于磁盘上。gyp err!构建错误gyp错误!堆栈错误:C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe失败,退出代码:1 gyp ERR!在childprocess.onexit处堆栈(C:\users\sintu\desktop\billingapp\node_modules\node-gyp\lib\build.js:258:23)gyp错误!在emitTwo(events.js:126:13)处堆栈gyp错误!在childprocess.emit(events.js:214:7)处堆栈gyp错误!在process.childprocess._handle.onexit处堆栈(internal/child_process.js:198:12)gyp错误!系统Windows_NT 6.1.7601 gyp错误!命令“C:\Program Files\nodejs\node.exe”“C:\users\sintu\desktop\billingapp\node_modules\node-gyp\bin\node-gyp.js”“rebuild”“--target=1.7.11”“--arch=x64”“--dist-url=https://atom.io/download/electronic”“--build-from-source”“--module_name=node_sqlite3”“cwd C:\users\sintu\desktop\billingapp\node_modules\sqlite3 gyp err!node-v v8.9.1 gyp err!node-gyp-v v3.6.2 gyp错误!不确定

失败,退出代码:%1

错误:在此解决方案中一次生成一个项目。要启用并行构建,请添加“/M”开关。C:\users\sintu\desktop\billingapp\node_modules\sqlite3\build\deps\action_before_build.vcxproj(20,3):错误MSB4019:找不到导入的项目“C:\microsoft.cpp.default.props”。确认声明中的路径是正确的,并且文件存在于磁盘上。gyp err!构建错误gyp错误!堆栈错误:C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe失败,退出代码:1 gyp ERR!在childprocess.onexit处堆栈(C:\users\sintu\desktop\billingapp\node_modules\node-gyp\lib\build.js:258:23)gyp错误!在emitTwo(events.js:126:13)处堆栈gyp错误!在childprocess.emit(events.js:214:7)处堆栈gyp错误!在process.childprocess._handle.onexit处堆栈(internal/child_process.js:198:12)gyp错误!系统Windows_NT 6.1.7601 gyp错误!命令“C:\Program Files\nodejs\node.exe”“C:\users\sintu\desktop\billingapp\node_modules\node-gyp\bin\node-gyp.js”“rebuild”“--target=1.7.11”“--arch=x64”“--dist-url=https://atom.io/download/electronic”“--build-from-source”“--module_name=node_sqlite3”“cwd C:\users\sintu\desktop\billingapp\node_modules\sqlite3 gyp err!node-v v8.9.1 gyp err!node-gyp-v v3.6.2 gyp错误!不确定

失败,退出代码:1位于SafeSubscriber._ERROR(C:\users\sintu\desktop\billingapp\node_modules\spawn-rx\lib\src\index.js:277:84)位于SafeSubscriber.__tryorunsub(C:\users\sintu\desktop\billingapp\node_modules\rxjs\subscriber.239:16)位于SafeSubscriber.ERROR(C:\users\sintu\desktopSktop\billingapp\node_modules\rxjs\subscriber.js:186:22)npm err!code ELIFECYCLE npm err!errno 4294967295 npm err!billingapp@1.0.0 rebuild:electron-rebuild-f-w billingappnpm err!退出状态4294967295 npm err!npm err!billingapp@1.0.0 rebuild脚本失败。npm err!这可能不是npm的问题。上面可能有其他日志记录输出。

npm错误!此运行的完整日志可以在:npm err!C:\users\sintu\appdata\roaming\npm-cache_logs\2018-01-30t15_36_46_678z-debug.log

共有1个答案

井翰
2023-03-14

您的脚本似乎有很多问题,但SQLite也遇到了一个罕见的问题。

0)您可以在这里找到我的Github源代码,该源代码一直在运行,直到出现此错误:

Cannot read property 'on' of undefined

但那是另一个问题:D

1)您的package.json格式不正确(例如,没有启动脚本)

新建package.json

{ // there was no begining bracket
  "name": "billingapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "rebuild": "electron-rebuild -f -w billingapp",
    "start": "node index.js" // new start script
  },
  "author": "S Kundu",
  "license": "ISC",
  "dependencies": {
    "electron": "^1.7.11",
    "sqlite3": "^3.1.0" // I used this version
  },
  "devDependencies": {
    "electron-rebuild": "^1.7.3"
  }
}

2)当我安装sqlite时,遇到了这个问题https://github.com/mapbox/node-sqlite3/issues/758

sqlite3似乎不能与nodejs的最后一个版本一起使用,因此您需要安装Node@8.9.3您可以使用nvm来实现:

请参阅关于sqlite3问题的注释

treedbox于2017年12月20日发表评论

 类似资料:
  • 我的Spring启动应用程序, 在获得Whitelabel错误页面后,我在我的一个控制器中映射了, 我映射了一个,出现以下异常:, 遵循User9123的解决方案,但是,我仍然得到下面的页面,

  • 问题内容: 我见过的每一个tkinter教程都声称必须绘制窗口并处理事件,并且它们总是调用此函数,即使在hello world程序中也是如此。但是,当我在交互式外壳程序中尝试这些方法时,可以正确绘制窗口,而不必调用mainloop。 这个在tkinter中嵌入matplotlib图形的示例产生了一个相对复杂的应用程序,它具有用于在tkinter窗口内平移,缩放和调整图大小的按钮,而且,如果您删除对

  • 问题内容: 我有一个使用此函数运行线程的代码示例。我们为什么以及何时需要使用它? 编辑 怎么样来使用类,什么是和? 问题答案: 当您要从非UI线程更新UI时必须使用。例如-如果您想从后台线程更新UI。您也可以将其用于同一件事。 从文档- 在UI线程上运行指定的操作。如果当前线程是UI线程,则立即执行该操作。如果当前线程不是UI线程,则将操作发布到UI线程的事件队列。 句法 - 更新- 如果您要执行

  • 问题内容: 我的任务是使用WorldWind API创建应用程序,并且为了熟悉API,我尝试运行“ HelloWorldWind”示例应用程序。当我这样做时,我得到以下错误堆栈: 如下: 由于我在64位系统上运行,因此在网上阅读一些东西时,人们会感到责备,但是,我的构建路径中已经包含了必要的jar。 此外,尝试在浏览器中显示上述URL会返回404页面,这使我认为这可能是原因 。URL只是格式化某些

  • 我添加Nuget Package Install-Package MvcSiteMapProvider.MVC4 编译器错误消息: CS1705:程序集'MvcSite Map提供者,版本=4.6.18.0,文化=中性,公共密钥令牌=1923abe4657913cc'使用'System. Web. Mvc,版本=4.0.0.0,文化=中性,公共密钥令牌=31bf3856ad364e35',其版本高

  • 然而,当我运行该应用程序编译并将其安装到我的手机中时,它比Eclipse需要更多的时间。 我点击run,它开始创建应用程序。这些任务是:。在完成时说。然后它装载它。 问题是,有时它可能只需要20秒,但其他时候2-3分钟。这是烦人的等待时间。是否必须在每次编译之前运行此执行?我可以关闭它或缩短它的时间吗? 如果这个问题不准确,我很抱歉,但我不熟悉grandle在AS中是如何完全工作的。