npm install request cheerio async -saverequest
var request = require('request');
// 通过 GET 请求来读取 http://cnodejs.org/ 的内容
request('http://cnodejs.org/', function (error, response, body) {
if (!error && response.statusCode == 200) {
// 输出网页内容
console.log(body);
}
});请求跨域的解决方式
// Create the browser window.
const win = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
webSecurity: false,
nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
}
});
app.commandLine.appendSwitch("disable-features", "OutOfBlinkCors");主要添加了第6行和第11行,正式运行时删除即可
const { app } = require('electron')
app.getPath(name)app位于主进j程中,渲染进程
const { app } = window.require("electron").remote;String - You can request the following paths by the name:
home 用户的 home 文件夹(主目录)
Per-user application data directory, which by default points to:
- `%APPDATA%` Windows 中$XDG_CONFIG_HOME or ~/.config Linux 中
~/Library/Application Support macOS 中userData 储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称
temp 临时文件夹
exe当前的可执行文件
module The libchromiumcontent 库
desktop 当前用户的桌面文件夹
documents 用户文档目录的路径
downloads 用户下载目录的路径
music 用户音乐目录的路径
pictures 用户图片目录的路径
videos 用户视频目录的路径
recent Directory for the user’s recent files (Windows only).
logs应用程序的日志文件夹
pepperFlashSystemPlugin Pepper Flash 插件的系统版本的完成路径。
crashDumps Directory where crash dumps are stored.
Returns String - A path to a special directory or file associated with name. On failure, an Error is thrown.
If app.getPath('logs') is called without called app.setAppLogsPath() being called first, a default log directory will be created equivalent to calling app.setAppLogsPath() without a path parameter.
添加
npm install node-fetch --save引用
var fetch = window.require("node-fetch");
var fs = window.require("fs");下载
download(u, p) {
var path = this.outpath + "\\" + p;
return fetch(u, {
method: "GET",
headers: { "Content-Type": "application/octet-stream" }
})
.then(res => res.buffer())
.then(_ => {
fs.writeFile(path, _, "binary", function(err) {
console.log(err || path);
});
});
}
down_action() {
var url =
"http://shiti_upload.91taoke.com/upload/2019/11/23/1548420902.files/image001.png";
this.download(url, url.split("/").reverse()[0]);
}electron写应用时,会遇到自动上传的需求。但是H5中只能通过input(type=file)来手动上传,JS又没有读取文件的权限,此时,我们可以借助node模块完成需求。
const request = require("request");
var options = {
'method': 'POST',
'url': 'https://www.psvmc.com/api2/upload',
'headers': {
'Host': 'www.psvmc.com',
'Referer': 'https://www.psvmc.com/restore',
'Cookie': ''
},
formData:{
file:fs.createReadStream(`./widget.jpg`),
type:'image/jpg',
name:'widget.jpg'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(JSON.parse(response.body));
});