Javascript Electron js:无法读取属性';showSaveDialog';未定义的

Javascript Electron js:无法读取属性';showSaveDialog';未定义的,javascript,node.js,dialog,electron,typeerror,Javascript,Node.js,Dialog,Electron,Typeerror,我是电子新手,请接受我有限的知识。我正在尝试从main.js的模板菜单中的'save'选项保存HTML文件 应用程序加载很好,但当我进入菜单并单击“保存”或“打开”时,就会出现错误。我尝试过很多不同的方法,但我无法摆脱前面提到的错误 这是我的密码: const {BrowserWindow, app, Menu, remote} = require('electron') const fs = require('fs') const url = require('url') const path

我是电子新手,请接受我有限的知识。我正在尝试从main.js的模板菜单中的'save'选项保存HTML文件

应用程序加载很好,但当我进入菜单并单击“保存”或“打开”时,就会出现错误。我尝试过很多不同的方法,但我无法摆脱前面提到的错误

这是我的密码:

const {BrowserWindow, app, Menu, remote} = require('electron')
const fs = require('fs')
const url = require('url')
const path = require('path')
var dialog = require('electron').remote

app.on('ready', () => {
let mainWindow = new BrowserWindow({})

mainWindow.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file',
    slashes: true
    }));

mainWindow.webContents.on('will-navigate', (e, url) => {
    e.preventDefault()

    mainWindow.webContents.send('open-file', url.slice(7))
})
const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
Menu.setApplicationMenu(mainMenu);
}); 

//menu template 
const mainMenuTemplate = [
    {
        label: 'File',
        submenu: [
            {label: 'New File',
                accelerator: process.platform == 'darwin' ? 'Command+N' : 'Ctrl+N',
                click(){
                    //create new file
                }
            },
            {label: 'Open File',
                accelerator: process.platform == 'darwin' ? 'Command+O' : 'Ctrl+O',
                click(){
                    dialog.showOpenDialog();
                }
            },
            {label: 'Save',
                accelerator: process.platform == 'darwin' ? 'Command+S' : 'Ctrl+S',
                click(){
                    dialog.showSaveDialog((fileName) => {
                        if(fileName === undefined) {
                            alert("File not saved");
                            return;
                        }
                        var content = docment.getElementById('#container').value;
fs.writeFile(fileName, content, (err) => {
                            if (err) console.log(err);
                            alert("Save Succesful!")
                        });
                    });
                }
            },
            {label: 'Save As...',
                accelerator: process.platform == 'darwin' ? 'Command+Sft+S' : 'Ctrl+Sft+S',
                click(){
                    //create new file
                }
            },
            {role: 'quit',
            accelerator: process.platform == 'darwin' ? 'Command+F4' : 'Ctrl+F4' //Shortcuts 
            }
        ]
    }
];

app.on('window-al

您正在通过

var dialog=require('electron')。远程

require('electron')。remote
将远程代理返回到
electron
的命名空间。
require('electron')。remote.dialog
是dialog模块的代理。

可能范围问题使
dialog
成为“未定义的”