【问题标题】:Javascript global variable not working as expectedJavascript 全局变量未按预期工作
【发布时间】:2020-11-30 03:30:22
【问题描述】:

我正在尝试在 express 中使用我的“窗口”变量,但我不能。谁能帮忙

const { app, BrowserWindow } = require("electron")
const expapp = require("express")()

this.window

app.on("ready", () => {
    this.window = new BrowserWindow({webPreferences:{ nodeIntegration: true }})

    this.window.loadURL("https://www.google.com.tr")
    expapp.get("/", (req,res) => {
        res.render("index.ejs")
    })
    /* Sayfayı geri al */
    expapp.get("/back", (req,res) => {
        this.window.selectPreviousTab()
        res.send("ok")
    })
})

expapp.listen(1661, () => { console.log("1661 portu üzerinden dinleniyor") })

当我在 express "/back" 中去这条路线时,我得到了这个错误

TypeError: this.window.selectPreviousTab is not a function
    at C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\app.js:15:21
    at Layer.handle [as handle_request] (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\index.js:275:10)
    at expressInit (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\middleware\init.js:40:5)
    at Layer.handle [as handle_request] (C:\Users\GreXLin85\Desktop\Projelerim\PC\xx\node_modules\express\lib\router\layer.js:95:5)

【问题讨论】:

    标签: express electron


    【解决方案1】:

    您应该阅读电子中的 mainrenderer 进程: https://www.electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes

    main 进程中,您没有全局window 变量:main 进程是node 进程,而不是浏览器进程。

    BrowserWindow 类没有.selectPreviousTab() 方法——它不是NSWindow,而且您没有在Swift 中编写本机代码。您应该使用 electron/js 文档而不是 native/Swift 开发 electron 应用程序的文档。

    electron 是一个框架/平台,用于使用 node 和 chromium 在JS 中编写桌面应用程序,它不是原生框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 2021-07-18
      • 2015-07-10
      • 1970-01-01
      相关资源
      最近更新 更多