为了账号安全,请及时绑定邮箱和手机立即绑定

Node JS:res.send 不是一个函数

Node JS:res.send 不是一个函数

叮当猫咪 2022-09-02 17:22:57
我正在用nodeJS制作我的第一个简单的反恐精英API机器人,但是我在res.send函数上遇到了一些问题。当我使用它时,它会抛出以下错误:“res.send不是一个函数”。我已尝试将 res.send 移到请求之外,但是这只会在我刷新页面后更新我的数据。任何帮助将不胜感激,因为我已经在这个问题上停留了一段时间。我的代码 :const path = require('path')const express = require('express')var request = require("request")/*const getSkinfo = require('./wyrskin')*/const app = express()const publicDirectoryPath = path.join(__dirname, '/public')var skins_str = "empty"app.use(express.static(publicDirectoryPath))/*var string_skin = (JSON.stringify(getSkinfo))*/app.get('/skin', (req, res) => {    request('https://api.steamapis.com/market/items/730?api_key=xyz', { json: true }, (err, res, body) => {        if (err) { return console.log(err); }        var skins = []        var score = 0        var i;        for (i = 0; i < body.data.length; i++) {            var name = body.data[i].market_name            var price = body.data[i].prices            var img_url = body.data[i].image            if (name.includes('Factory New') && !name.includes('StatTrak')) {                skins.push(name + "," + price.avg + "^" + img_url)            }        }        var num1 = Math.floor(Math.random() * 1215);        var num2 = Math.floor(Math.random() * 1215);        var out1 = "A : " + skins[num1]        var out2 = "B : " + skins[num2]        var mySubString1 = out1.substring(            out1.lastIndexOf(",") + 1,            out1.lastIndexOf("^")        );        var price1 = parseFloat(mySubString1)        var mySubString2 = out2.substring(            out2.lastIndexOf(",") + 1,            out2.lastIndexOf("^")        );        var price2 = parseFloat(mySubString2)        skins_str = (out1 + " ~ " + out2)        console.log(skins_str)        res.send({ skins: skins_str })    })})app.listen(3000, () => {    console.log('Server is up on port 3000.')})
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

这并不是我代理来自节点服务器的请求的方式。签出节点提取 npm 包。承诺确实清理了代码。


但代码中的错误是,此函数的作用域中有另一个 res 变量。如果您将其重命名为响应,它应该可以正常工作?


如果您只是在响应中发送对象,也请改用。res.json()


希望这有帮助!


app.get('/skin', (req, res) => {


    request('https://api.steamapis.com/market/items/730?api_key=xyz', { json: true }, (err, response, body) => {

        if (err) { return console.log(err); }

        var skins = []

        var score = 0

        var i;

        for (i = 0; i < body.data.length; i++) {

            var name = body.data[i].market_name

            var price = body.data[i].prices

            var img_url = body.data[i].image

            if (name.includes('Factory New') && !name.includes('StatTrak')) {

                skins.push(name + "," + price.avg + "^" + img_url)


            }

        }

        var num1 = Math.floor(Math.random() * 1215);

        var num2 = Math.floor(Math.random() * 1215);

        var out1 = "A : " + skins[num1]

        var out2 = "B : " + skins[num2]


        var mySubString1 = out1.substring(

            out1.lastIndexOf(",") + 1,

            out1.lastIndexOf("^")

        );

        var price1 = parseFloat(mySubString1)


        var mySubString2 = out2.substring(

            out2.lastIndexOf(",") + 1,

            out2.lastIndexOf("^")

        );

        var price2 = parseFloat(mySubString2)


        skins_str = (out1 + " ~ " + out2)

        console.log(skins_str)

        res.json({ skins: skins_str })


    })


})


app.listen(3000, () => {

    console.log('Server is up on port 3000.')




})


查看完整回答
反对 回复 2022-09-02
  • 1 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号