Javascript 路径必须是字符串(需要带有node.js http模块的url)

Javascript 路径必须是字符串(需要带有node.js http模块的url),javascript,node.js,electron,Javascript,Node.js,Electron,因此,我试图制作一个更新检查器,该检查器实际上并不下载更新,而是nvm,我所要做的就是检查github上package.json的版本是否与应用程序中的版本相同(我在electron中制作) 通过这段代码,我得到了一个“路径必须是字符串错误”(这是一张图片) 我也曾多次查找,事实上,从github获取package.json和http模块的代码来自 函数checkforupdate(){ var http=require('http') 常量文件\u url=”https://raw.githu

因此,我试图制作一个更新检查器,该检查器实际上并不下载更新,而是nvm,我所要做的就是检查github上package.json的版本是否与应用程序中的版本相同(我在electron中制作)

通过这段代码,我得到了一个“路径必须是字符串错误”(这是一张图片)

我也曾多次查找,事实上,从github获取package.json和http模块的代码来自

函数checkforupdate(){
var http=require('http')
常量文件\u url=”https://raw.githubusercontent.com/FloffahDevelopments/FloffahsHub/master/package.json";
const oldpackagejson=require(“package.json”);
document.getElementById(“checkupdate”).innerHTML='正在检查更新
请稍候
' 然后(res=>res.json())。然后(pack=>{ if(pack.version!==oldpackagejson.version){ document.getElementById(“checkupdate”).innerHTML='updateavailable!' }否则{ document.getElementById(“checkupdate”).innerHTML='没有可用的更新!' } });

}

这将发出您想要的请求:

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
视为承诺,而不是承诺。不过,它可以通过加入像bluebird这样的模块来实现。您使用http模块发出https请求。您没有正确地提供http.get的参数,也就是说,您的语法不正确。如果您试图更新服务器端代码上的DOM,则应该将客户端和服务器逻辑分开
res=>res.json()

简单的回答是,您之所以会收到错误,是因为您将
承诺传递给
require()
@ChrisG我可以做些什么来解决这个问题?在您的package.json中,它是否会说
“version”:“1.2.3”
?因为那样的话,你想得太多了;您根本不需要
require()
;只需
http.get()
文件,解析它,然后读取
version
。另外,package.json不是一个模块,因此您链接到的问题(以及这里提到的代码)根本不适用。@ChrisG哦,我不知道这一点。我会只做'if(http,get thing!==newpackagejson.version){吗?你会使用
http.get(file_url)。然后(res=>res.json())。然后(pack=>{if(pack.version…});
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)
})