小编Joh*_*mes的帖子

此版本的 Node.js 需要 NODE_MODULE_VERSION 57

我使用的是 Node.js v8.9.4,由于它现在已停产,我决定切换到 lts/erbium -> v12.14.1。此外,我使用 nvm (0.33.8) 来处理我的节点版本。

我安装了除canvas之外的所有软件包。使用 npm install canvas@latest 成功安装后,我在尝试将其用于我的 Nodejs 应用程序时遇到了问题。这是错误。

Error: The module '/home/node_modules/canvas/build/Release/canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
Run Code Online (Sandbox Code Playgroud)

我尝试从node_modules文件中完全卸载并删除canvas包。然后为了解决上述问题,我尝试了:

npm rebuild canvas --update-binary
npm rebuild canvas --build-from-source
npm rebuild
Run Code Online (Sandbox Code Playgroud)

但没有一个起作用。

canvas node.js npm nvm

8
推荐指数
0
解决办法
1706
查看次数

使用js将登录数据发布到站点

我想编写一个小脚本,在运行它时应该在已经给出的html站点中填充一些数据.例如,假设该站点是stackoverflow登录页面,我需要填写我的用户名和密码.

知道我们拥有的用户名:

<input type="email" name="email" id="email" size="30" maxlength="100" placeholder="you@example.org">
Run Code Online (Sandbox Code Playgroud)

密码:

<input type="password" name="password" id="password" placeholder="********">
Run Code Online (Sandbox Code Playgroud)

和数据:

data = {username:"user", password:"pass"};
Run Code Online (Sandbox Code Playgroud)

我们的js应该像下面这样(对吗?):

document.getElementById("email").value=data.username; 
document.getElementById("password").value=data.password; 
Run Code Online (Sandbox Code Playgroud)

我真正理解的是如何将"发布"到网站然后点击登录按钮.(ajax?)一般如何将它组合在一起并使其成为一个正在运行的脚本.

提前致谢.

html javascript ajax jquery

6
推荐指数
1
解决办法
955
查看次数

如何在Xvfb上运行无头Firefox

我正在尝试使用geckodriver运行webdriver.我已经安装了selenium gecko,firefox和python27.我的文件夹有脚本和geckodriver.

什么时候从centOS运行命令python script.py它说

selenium.common.exceptions.WebDriverException: Message: Failed to start browser: permission denied
Run Code Online (Sandbox Code Playgroud)

以下是我使用的脚本:

#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('/usr/local/firefox')
display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox(firefox_binary=binary)

browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()
Run Code Online (Sandbox Code Playgroud)

在你问之前,当我跑步时,whereis firefox我得到了firefox: /usr/local/bin/firefox /usr/local/firefox

编辑:

在我运行sudo yum -y install firefox Xvfb libXfont Xorg了python scipt 之后,我在geckdriverlog上遇到错误说:

XPCOMGlueLoad error for file /usr/local/firefox/libxul.so:
libdbus-glib-1.so.2: cannot open shared object file: No such file or directory …
Run Code Online (Sandbox Code Playgroud)

selenium gecko centos amazon-web-services selenium-webdriver

6
推荐指数
1
解决办法
891
查看次数

从 nodejs 运行 c/c++ 代码

假设我在 c++ 或 c 中有一个简单的 hello world 文件(任何可以帮助我在 node.js 中更轻松地使用它,最好是 c)并且想要从 node.js 文件中运行它。考虑到该文件将用于提高性能(将 CPU 密集型函数从 node.js 更改为 c/c++),最有效的方法是什么?

我遇到了插件,但在我看来,为了使用它,我必须转换大量代码才能将其转换为该格式。有更容易的方法吗?

c c++ node.js requirejs

3
推荐指数
2
解决办法
6736
查看次数

使用Node.js在Mysql查询中传递数组

我有一个简单的查询,我想传递一个包含5个项目的数组。我正在使用该mysql模块,因此我知道它可以完成,但是没有正确执行synatx,因此出现语法错误。

下面是查询:

`UPDATE table1 SET table1.col=0 WHERE (table1.col2) IN = (?) AND table1.id=(SELECT ...);`,[arr]

//arr = [1,2,3,4,5];
Run Code Online (Sandbox Code Playgroud)

我试过了:

`UPDATE table1 SET table1.col=0 WHERE (table1.col2) IN = (?,?,?,?,?) AND table1.id=(SELECT ...);`,[arr]`
Run Code Online (Sandbox Code Playgroud)

但我仍然收到语法错误。

mysql arrays node.js

2
推荐指数
3
解决办法
2212
查看次数