当前位置: 首页 > news >正文

做网站都要学什么云优化

做网站都要学什么,云优化,网站做一半能退吗,百度搜录最快的网站Electron调用nodejs的cpp .node扩展【非安全】 环境: electron: 30.1.1 nodejs: 20.14.0前言 Electron中可以非常容易的调用nodejs的js代码,但是对于cpp .node扩展需要一定的配置才能调用,下面介绍一种最简单的cpp扩展的调用方法&#xff…

Electron调用nodejs的cpp .node扩展【非安全】

环境:

electron: 30.1.1
nodejs: 20.14.0

前言

Electron中可以非常容易的调用nodejs的js代码,但是对于cpp .node扩展需要一定的配置才能调用,下面介绍一种最简单的cpp扩展的调用方法,该方法的优点是调用简单,缺点是会降低应用程序的安全性,生产环境中需谨慎使用。

代码

$ tree
.
+--- build
|   +--- Release
|   |   +--- addon.node
+--- addon.cpp
+--- binding.gyp
+--- CMakeLists.txt
+--- index.html
+--- index.js
+--- package.json

index.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Hello Electron</title><meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline';">
</head><body><p id="version"></p><p id="napi"></p><script>let info = `electron: ${process.versions.electron}, nodejs: ${process.versions.node}, chrome: ${process.versions.chrome}, v8: ${process.versions.v8}`;document.getElementById("version").innerHTML = info;console.log(info);const addon = require('./build/Release/addon.node');info = addon.hello();document.getElementById("napi").innerHTML = info;console.log(info);</script>
</body></html>

index.js

const { app, BrowserWindow } = require('electron/main');
// app.commandLine.appendSwitch('remote-debugging-port', '9222');const createWindow = () => {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true,contextIsolation: false}})win.loadFile('index.html');
}app.whenReady().then(() => {createWindow();
})

addon.cpp

#include <node_api.h>static napi_value helloMethod(napi_env env, napi_callback_info info)
{napi_value result;napi_create_string_utf8(env, "hello world from napi", NAPI_AUTO_LENGTH, &result);return result;
}static napi_value Init(napi_env env, napi_value exports)
{napi_property_descriptor desc = {"hello", 0, helloMethod, 0, 0, 0, napi_default, 0};napi_define_properties(env, exports, 1, &desc);return exports;
}NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

binding.gyp

{"targets": [{"target_name": "addon","sources": [ "addon.cpp" ]}]
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)project(addon)message(STATUS "operation system is ${CMAKE_SYSTEM}")add_definitions(-std=c++11)include_directories(${CMAKE_JS_INC})
include_directories(.)file(GLOB SOURCE_FILES addon.cpp)add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})

package.json

{"name": "my-electron-app","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "electron ."}
}

编译

node-gyp configure build

结果

electron: 30.1.1, nodejs: 20.14.0, chrome: 124.0.6367.243, v8: 12.4.254.20-electron.0hello world from napi

禁用 contextIsolation 和启用 nodeIntegration,会降低应用的安全性。务必谨慎使用,并确保你信任加载的所有代码和资源。

http://www.zhongyajixie.com/news/16824.html

相关文章:

  • 海淀网站建设网络营销师证
  • 室内设计培训机构多少钱seo整站优化技术培训
  • 唐山市住房城乡建设部网站主页百度贴吧网页版登录入口
  • 北京企业建站技术广州企业推广
  • 接做网站单子的网站网站定制
  • 网站建设与网页设计总结aso优化渠道
  • 犀牛云做的网站好不好百度seo排名优化软件
  • 找人做app网站福州seo按天付费
  • 南京网站公司郴州网站seo
  • 温州营销网站制作报价windows系统优化软件排行榜
  • 昆明市网站制作公司网络营销策划模板
  • 佛山智能建站进入百度首页
  • 著名室内设计网站大全今日重大事件
  • 手机网站banner尺寸营销网点机构号
  • 如何上传程序到网站空间产品推广文案怎么写
  • 网站三大标签深圳seo网络优化公司
  • 张店网站制作设计公司使用网站模板快速建站
  • 丽水做网站公司免费直链平台
  • wordpress 地图插件seo网站内部优化
  • 国际新闻最新战争消息aso优化软件
  • 创作网站起名最好的网站排名
  • spring mvc 网站开发杭州网站优化培训
  • 一家网站建设公司需要什么资质网页设计模板免费网站
  • 杭州网站维护外包国内优秀网站案例
  • 搜狗网站录入网站域名查询工具
  • 网站建设的出发点市场营销图片高清
  • 如何做网站ppt网站搜索优化方法
  • 电子商务网站建设与管理程序设计题直播发布会
  • 深圳营销型网站建设搜狗收录批量查询
  • 私人订制网站有哪些2024年新闻摘抄十条