所以我试图制作一个更新检查器,实际上没有下载更新,但是nvm和所有我试图检查github上的package.json上的版本是否与应用程序中的版本相同(我在电子)
使用此代码我得到一个"路径必须是字符串错误" (见图像https://gyazo.com/7b55a1cbe96b2719bb588a6591855839)
我也查了很多次,实际上从github获取带有http模块的package.json的代码来自how to require from URL in Node.js
function checkforupdate() {
var http = require('http')
const file_url = "https://raw.githubusercontent.com/FloffahDevelopments/FloffahsHub/master/package.json";
const oldpackagejson = require("package.json");
document.getElementById("checkupdate").innerHTML = 'Checking for updates</br>Please wait</br><img src="./assets/icons/gif/loading.gif" alt="loading" style="width: 10%; left: 45%;">'
http.get(file_url).then(res => res.json()).then(pack => {
if (pack.version !== oldpackagejson.version) {
document.getElementById("checkupdate").innerHTML = 'Update available!'
} else {
document.getElementById("checkupdate").innerHTML = 'No update available!'
}
});
}
答案 0 :(得分:0)
这将提出您想要的请求:
var https = require('https')
const file_url = "https://raw.githubusercontent.com/FloffahDevelopments/FloffahsHub/master/package.json"
const oldpackagejson = require("./package.json");
https.get(file_url, (res) => {
res.on('data', (d) => {
process.stdout.write(d)
})
}).on('error', (e) => {
console.log(e)
})
你犯的一些错误是:当http.get
作为承诺时,将其作为承诺。但是,它可以包含像蓝鸟这样的模块。您使用http模块发出https请求。您没有正确地给出http.get它的参数,也就是说,您的语法不正确。您正在尝试更新服务器端代码上的DOM,您应该将客户端和服务器逻辑分开。 res => res.json()
不会将res
更改为json,您需要JSON.parse
。