上下文:我正在构建一个电子应用程序,该应用程序正在查询sql服务器(远程服务器)以从表中获取数据。我正在使用mssqlnodev8。
错误:当我使用npm start启动电子应用程序时,出现以下错误-
未捕获的错误:没有二进制文件成功加载。是你的节点 最新的4、5、6、7、8或9版本? 在failIfNoBinaryExported时失败(C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:63) 位于Object.liveLoad(C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:50) 在对象。 (C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:79) 在对象。 (C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:81) 在Module._compile(内部/模块/cjs/loader.js:711) 在Object.Module._extensions..js(internal / modules / cjs / loader.js:722) 在Module.load(internal / modules / cjs / loader.js:620) 在tryModuleLoad(内部/模块/cjs/loader.js:559) 在Function.Module._load(internal / modules / cjs / loader.js:551) 在Module.require(internal / modules / cjs / loader.js:658)
有关电子应用的其他信息- 我正在为我的UI使用引导程序。根据电子常见问题解答网站,我的条目html文件中包含以下代码
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports;
delete window.module;
</script>
除电子(index.js-入口点)以外的所有模块均通过
导入nodeRequire
到目前为止已完成分析-
我分析了node_modules \ msnodesqlv8 \ lib \ bootstrap.js中的bootstrap.js文件,行号63。它追溯到以下代码
var files = require('fs').readdirSync(binaryDir)
我也更改了nodeRequire,但是没有用。
我已经在github中检查了类似的问题,但是没有一个解决方案。
已更新 我在msnodesqlv8中分析了bootstrap.js。这些是不同的错误消息
导出二进制错误时出错: \?\ C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bin \ sqlserverv8.electron.v2.0.4.ia32.node 不是有效的Win32应用程序。 \?\ C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bin \ sqlserverv8.electron.v2.0.4.ia32.node 在process.module。(匿名函数)[作为dlopen](ELECTRON_ASAR.js:166:20) 在Object.Module._extensions..node(internal / modules / cjs / loader.js:740) 在Object.module。(匿名函数)[作为.node](ELECTRON_ASAR.js:166:20) 在Module.load(internal / modules / cjs / loader.js:620) 在tryModuleLoad(内部/模块/cjs/loader.js:559) 在Function.Module._load(internal / modules / cjs / loader.js:551) 在Module.require(internal / modules / cjs / loader.js:658) 在要求时(internal / modules / cjs / helpers.js:20) 在tryToExportBinary(C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:58) 在C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:48
导出二进制错误时出错:模块 '\?\ C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bin \ sqlserverv8.electron.v2.0.4.x64.node' 使用不同的Node.js版本编译 NODE_MODULE_VERSION 57.此版本的Node.js需要 NODE_MODULE_VERSION64。请尝试重新编译或重新安装 模块(例如,使用
npm rebuild
或npm install
)。 在process.module。(匿名函数)[作为dlopen](ELECTRON_ASAR.js:166:20) 在Object.Module._extensions..node(internal / modules / cjs / loader.js:740) 在Object.module。(匿名函数)[作为.node](ELECTRON_ASAR.js:166:20) 在Module.load(internal / modules / cjs / loader.js:620) 在tryModuleLoad(内部/模块/cjs/loader.js:559) 在Function.Module._load(internal / modules / cjs / loader.js:551) 在Module.require(internal / modules / cjs / loader.js:658) 在要求时(internal / modules / cjs / helpers.js:20) 在tryToExportBinary(C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:58) 在C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:48导出二进制错误时出错: \?\ C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bin \ sqlserverv8.node.v10.8.0.ia32.node 不是有效的Win32应用程序。 \?\ C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bin \ sqlserverv8.node.v10.8.0.ia32.node 在process.module。(匿名函数)[作为dlopen](ELECTRON_ASAR.js:166:20) 在Object.Module._extensions..node(internal / modules / cjs / loader.js:740) 在Object.module。(匿名函数)[作为.node](ELECTRON_ASAR.js:166:20) 在Module.load(internal / modules / cjs / loader.js:620) 在tryModuleLoad(内部/模块/cjs/loader.js:559) 在Function.Module._load(internal / modules / cjs / loader.js:551) 在Module.require(internal / modules / cjs / loader.js:658) 在要求时(internal / modules / cjs / helpers.js:20) 在tryToExportBinary(C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:58) 在C:\ Users \ t9sau2 \ Documents \ NodeJs \ Renewalverification \ node_modules \ msnodesqlv8 \ lib \ bootstrap.js:48
答案 0 :(得分:0)
我在msnodesqlv8的github报告中提出了这个问题。所有者更新了版本,从而解决了该问题。 github链接-https://github.com/TimelordUK/node-sqlserver-v8/issues/80