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

我正在用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.')




})


叮当猫咪
浏览 242回答 1
1回答

三国纷争

这并不是我代理来自节点服务器的请求的方式。签出节点提取 npm 包。承诺确实清理了代码。但代码中的错误是,此函数的作用域中有另一个 res 变量。如果您将其重命名为响应,它应该可以正常工作?如果您只是在响应中发送对象,也请改用。res.json()希望这有帮助!app.get('/skin', (req, res) => {&nbsp; &nbsp; request('https://api.steamapis.com/market/items/730?api_key=xyz', { json: true }, (err, response, body) => {&nbsp; &nbsp; &nbsp; &nbsp; if (err) { return console.log(err); }&nbsp; &nbsp; &nbsp; &nbsp; var skins = []&nbsp; &nbsp; &nbsp; &nbsp; var score = 0&nbsp; &nbsp; &nbsp; &nbsp; var i;&nbsp; &nbsp; &nbsp; &nbsp; for (i = 0; i < body.data.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var name = body.data[i].market_name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var price = body.data[i].prices&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var img_url = body.data[i].image&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (name.includes('Factory New') && !name.includes('StatTrak')) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; skins.push(name + "," + price.avg + "^" + img_url)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; var num1 = Math.floor(Math.random() * 1215);&nbsp; &nbsp; &nbsp; &nbsp; var num2 = Math.floor(Math.random() * 1215);&nbsp; &nbsp; &nbsp; &nbsp; var out1 = "A : " + skins[num1]&nbsp; &nbsp; &nbsp; &nbsp; var out2 = "B : " + skins[num2]&nbsp; &nbsp; &nbsp; &nbsp; var mySubString1 = out1.substring(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out1.lastIndexOf(",") + 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out1.lastIndexOf("^")&nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; &nbsp; var price1 = parseFloat(mySubString1)&nbsp; &nbsp; &nbsp; &nbsp; var mySubString2 = out2.substring(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out2.lastIndexOf(",") + 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out2.lastIndexOf("^")&nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; &nbsp; var price2 = parseFloat(mySubString2)&nbsp; &nbsp; &nbsp; &nbsp; skins_str = (out1 + " ~ " + out2)&nbsp; &nbsp; &nbsp; &nbsp; console.log(skins_str)&nbsp; &nbsp; &nbsp; &nbsp; res.json({ skins: skins_str })&nbsp; &nbsp; })})app.listen(3000, () => {&nbsp; &nbsp; console.log('Server is up on port 3000.')})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript