Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用自定义标记插件在Hexo中呈现获取的数据?_Javascript_Plugins_Promise_Fetch_Hexo - Fatal编程技术网

Javascript 如何使用自定义标记插件在Hexo中呈现获取的数据?

Javascript 如何使用自定义标记插件在Hexo中呈现获取的数据?,javascript,plugins,promise,fetch,hexo,Javascript,Plugins,Promise,Fetch,Hexo,我正在使用Hexo构建一个基于降价的在线文档,但我想通过呈现网络设备输出命令来扩展它的功能 更清楚地说,在呈现页面之前,我希望使用http获取结果,而不是将命令及其结果复制粘贴到代码块中 我已经编写了负责运行所需命令并在web服务器中公开其结果的软件 它所做的只是发送一个包含结果的字符串。只是文字 我只想使用Hexo标签插件在页面中呈现这个结果 我现在真的处于开发阶段,所以我只使用默认主题(“景观”)。因为我正在使用一个旧的Arch Linux版本(4.19.8-arch1-1-Arch),所以

我正在使用Hexo构建一个基于降价的在线文档,但我想通过呈现网络设备输出命令来扩展它的功能

更清楚地说,在呈现页面之前,我希望使用http获取结果,而不是将命令及其结果复制粘贴到代码块中

我已经编写了负责运行所需命令并在web服务器中公开其结果的软件

它所做的只是发送一个包含结果的字符串。只是文字

我只想使用Hexo标签插件在页面中呈现这个结果

我现在真的处于开发阶段,所以我只使用默认主题(“景观”)。因为我正在使用一个旧的Arch Linux版本(
4.19.8-arch1-1-Arch
),所以我使用的是Docker

容器内的文件结构:
。
|--_config.yml
|--package.json
|--脚手架
||--draft.md
||--page.md
|`--post.md
|--剧本
|`--index.js
|--来源
|`--U职位
|`--hello-world.md
`--主题
码头工人 hello-world.md 自定义插件(scripts/index.js)
const fetch=require(“节点提取”);
hexo.extend.tag.register(“cli_exporter”,(args)=>{
const hostname=“XX.YYY.ZZZ.WW:XXXX”
让端点、模块、目标
[端点、模块、目标]=参数
const url=“http://”+主机名+'/'+端点
+“?module=“+module+”&target=“+target
获取(url)
。然后(响应=>{
if(response.ok){
返回response.text()
。然后(数据=>“”+数据+“”)
.catch(错误=>console.error(错误))
}
返回承诺。拒绝(新错误(“响应失败”))
})
.catch(error=>Promise.reject(新错误(error.message)))
},{async:true});
我真的不能给你真正的主机名,因为它是私人软件,但它实际上只是纯文本


假设我想从Cisco路由器呈现
显示版本
结果。如果我在插件中
console.log(data)
,我会得到预期的结果。但它不会在生成的网站中呈现。

我想我的javascript有点生疏了。我通过添加一个报税表解决了这个问题

const fetch = require("node-fetch");

async function request(url) {
        const response = await fetch(url)
        const text = await response.text()

        return text
}

hexo.extend.tag.register("cli_exporter", (args) => {
        const hostname = "XX.YYY.ZZZ.WW:XXXX"
        let endpoint, module, target
        [endpoint, module, target] = args 

        const url = "http://" + hostname + '/' + endpoint
                + "?module=" + module + "&target=" + target

        return request(url)
        .then(data => {
                return "<div>" + data + "</div>"
        })
        .catch(error => console.error(error))
}, {async: true});
const fetch=require(“节点提取”);
异步函数请求(url){
const response=等待获取(url)
const text=wait response.text()
返回文本
}
hexo.extend.tag.register(“cli_exporter”,(args)=>{
const hostname=“XX.YYY.ZZZ.WW:XXXX”
让端点、模块、目标
[端点、模块、目标]=参数
const url=“http://”+主机名+'/'+端点
+“?module=“+module+”&target=“+target
返回请求(url)
。然后(数据=>{
返回“”+数据+“”
})
.catch(错误=>console.error(错误))
},{async:true});

我想我的javascript有点生锈了。我通过添加一个报税表解决了这个问题

const fetch = require("node-fetch");

async function request(url) {
        const response = await fetch(url)
        const text = await response.text()

        return text
}

hexo.extend.tag.register("cli_exporter", (args) => {
        const hostname = "XX.YYY.ZZZ.WW:XXXX"
        let endpoint, module, target
        [endpoint, module, target] = args 

        const url = "http://" + hostname + '/' + endpoint
                + "?module=" + module + "&target=" + target

        return request(url)
        .then(data => {
                return "<div>" + data + "</div>"
        })
        .catch(error => console.error(error))
}, {async: true});
const fetch=require(“节点提取”);
异步函数请求(url){
const response=等待获取(url)
const text=wait response.text()
返回文本
}
hexo.extend.tag.register(“cli_exporter”,(args)=>{
const hostname=“XX.YYY.ZZZ.WW:XXXX”
让端点、模块、目标
[端点、模块、目标]=参数
const url=“http://”+主机名+'/'+端点
+“?module=“+module+”&target=“+target
返回请求(url)
。然后(数据=>{
返回“”+数据+“”
})
.catch(错误=>console.error(错误))
},{async:true});
const fetch = require("node-fetch");

hexo.extend.tag.register("cli_exporter", (args) => {
        const hostname = "XX.YYY.ZZZ.WW:XXXX"
        let endpoint, module, target
        [endpoint, module, target] = args 

        const url = "http://" + hostname + '/' + endpoint
                + "?module=" + module + "&target=" + target

        fetch(url)
        .then(response => {
                if (response.ok) {
                        return response.text()
                        .then(data => "<div>" + data + "</div>")
                        .catch(error => console.error(error))
                }
                return Promise.reject(new Error("response failed"))
        })
        .catch(error => Promise.reject(new Error(error.message)))
}, {async: true});
const fetch = require("node-fetch");

async function request(url) {
        const response = await fetch(url)
        const text = await response.text()

        return text
}

hexo.extend.tag.register("cli_exporter", (args) => {
        const hostname = "XX.YYY.ZZZ.WW:XXXX"
        let endpoint, module, target
        [endpoint, module, target] = args 

        const url = "http://" + hostname + '/' + endpoint
                + "?module=" + module + "&target=" + target

        return request(url)
        .then(data => {
                return "<div>" + data + "</div>"
        })
        .catch(error => console.error(error))
}, {async: true});