我正在尝试从Microsoft Office加载项访问MySQL数据库。我可以使该加载项在MsWord中工作,但是当我尝试使用MySQL Node.js驱动程序时,“ mysql”对象在运行时显示为null。
我在taskpane.js的开头添加了此代码:
import { mysql } from 'mysql';
did the following:
npm install mysql
npm audit fix
npm install @types/mysql
added the following to webpack.config.js "target: 'node',"
稍后在代码中,当我运行它时,它将触发并显示“ mysql undefined”:
if (!mysql) {
context.document.body.insertParagraph("mysql undefined", Word.InsertLocation.end);
我想念什么或做错什么?
这是行不通的,因为您尝试mysql
在前端中使用服务器库。虽然两者都是用javascript编写的,但是它们所使用的环境却截然不同。
下图非常简洁地解释了该问题-我建议您从此网站中检出。
本质上,对于react库,您使用的是node.js作为构建助手,打包运行程序等。-这意味着最终结果应该只是一个javascript文件。main.123456.js
如果您使用的是默认版本,则类似。该文件在浏览器上下文中将是有意义的,因为这里将包含DOM项,即HTML特定的内容。
对于MySQL库-您将node.js用作HTTP服务器。那将无法访问DOM,但是由于它是作为一个进程运行的,因此它将为您提供不同的功能,从而使您的MySQL连接正常工作。
office.js
在浏览器上下文中运行,因此与react有关的一切基本上都在您的浏览器中运行。这意味着下面的行属于您的应用程序:
context.document.body.insertParagraph("mysql undefined", Word.InsertLocation.end);
不过,来自MySQL的数据需要来自服务器。您仍然可以在node.js中设置该服务器-这样,您就可以使用从NPM导入的MySQL库。本教程将引导您逐步设置一个非常简单的服务器。
这意味着这条线
import { mysql } from 'mysql';
sql连接属于服务器端。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句