路径必须是一个字符串(需要带有node.js http模块的url)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路径必须是一个字符串(需要带有node.js http模块的url)相关的知识,希望对你有一定的参考价值。
因此,我试图制作一个更新检查器,但实际上没有下载更新,但是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!'
}
});
}
答案
这将提出您想要的请求:
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
。
以上是关于路径必须是一个字符串(需要带有node.js http模块的url)的主要内容,如果未能解决你的问题,请参考以下文章