从反应组件调用节点模块
Invoking a node module from react component
如何在 React 组件中使用节点模块,例如 'lwip'?这是电子申请。
正在用代码更新问题:
- 这是我试图从中调用另一个 .js 文件的 React 组件。
button.js
import React from 'react';
import ReactDOM from 'react-dom';
import resize from '../../node-code/process';
class Button extends React.Component{
mess(){
console.log('working');
resize();
}
render(){
return <button id="imgButton" onClick={this.mess.bind(this)}>Upload Image</button>
}
}
export default Button
- 这是我尝试调整图像大小的另一个 javascript 文件。
process.js
var lwip = require('lwip');
export default function(){
var lwip = require('lwip');
lwip.open('../../public/img/portrait.jpg', function(err, image){
image.batch()
.scale(0.75) // scale to 75%
.rotate(45, 'white') // rotate 45degs clockwise (white fill)
.crop(200, 200) // crop a 200X200 square from center
.blur(5) // Gaussian blur with SD=5
.writeFile('../../public/img/output.jpg', function(err){
});
});
}
Node 模块需要 运行 来自主 Electron 线程,而不是 React 运行 所在的渲染器线程。
您可以在渲染器进程中 运行 NPM 模块,就好像您在浏览器中一样,但是这些模块不能使用 Node.js 库,因为浏览器中显然没有节点。
要在主线程(节点)和渲染器(浏览器)线程之间进行通信,您需要使用 IPC(进程间通信)一种使用事件在线程之间发送数据的系统。
Here's the IPC documentation for Electron.
如果您需要线程之间的持续通信,您可以使用 electron-ipc-socket 库。
如何在 React 组件中使用节点模块,例如 'lwip'?这是电子申请。
正在用代码更新问题:
- 这是我试图从中调用另一个 .js 文件的 React 组件。
button.js
import React from 'react';
import ReactDOM from 'react-dom';
import resize from '../../node-code/process';
class Button extends React.Component{
mess(){
console.log('working');
resize();
}
render(){
return <button id="imgButton" onClick={this.mess.bind(this)}>Upload Image</button>
}
}
export default Button
- 这是我尝试调整图像大小的另一个 javascript 文件。
process.js
var lwip = require('lwip');
export default function(){
var lwip = require('lwip');
lwip.open('../../public/img/portrait.jpg', function(err, image){
image.batch()
.scale(0.75) // scale to 75%
.rotate(45, 'white') // rotate 45degs clockwise (white fill)
.crop(200, 200) // crop a 200X200 square from center
.blur(5) // Gaussian blur with SD=5
.writeFile('../../public/img/output.jpg', function(err){
});
});
}
Node 模块需要 运行 来自主 Electron 线程,而不是 React 运行 所在的渲染器线程。
您可以在渲染器进程中 运行 NPM 模块,就好像您在浏览器中一样,但是这些模块不能使用 Node.js 库,因为浏览器中显然没有节点。
要在主线程(节点)和渲染器(浏览器)线程之间进行通信,您需要使用 IPC(进程间通信)一种使用事件在线程之间发送数据的系统。
Here's the IPC documentation for Electron.
如果您需要线程之间的持续通信,您可以使用 electron-ipc-socket 库。