Javascript 在节点js中将x设置为request时,“x”的getData不起作用

Javascript 在节点js中将x设置为request时,“x”的getData不起作用,javascript,node.js,Javascript,Node.js,这是我的代码: app.get('/',(req,res) => { var x = new Data(); x.setData("Hello"); console.log(x.getData()); // Hello req.x = x; x = req.x; console.log(x.getData()); // getData() is not a function ??

这是我的代码:

    app.get('/',(req,res) => {
        var x = new Data();
        x.setData("Hello");
        console.log(x.getData()); // Hello
        req.x = x;
        x = req.x;
        console.log(x.getData()); // getData() is not a function ?? 
    });

请帮帮我

这是我的实验代码:

// app.js
const express = require('express')
const app = express()

class Data {
    constructor() {
        this.data = ''
    }

    setData(val) {
        this.data = val
    }

    getData() {
        return this.data
    }
}

// app.get('/', (req, res) => res.send('Hello World!'))

app.get('/',(req,res) => {
        var x = new Data();
        x.setData("Hello");
        console.log(x.getData()); // Hello
        console.log(req.x)
        req.x = x;
        console.log(req.x)
        x = req.x;
        console.log(x)
        console.log(x.getData()); 
        res.send('Hello World!')
    });

app.listen(3000, () => console.log('Example app listening on port 3000!'))
这是输出:

> node app.js
Example app listening on port 3000!
Hello
undefined
Data { data: 'Hello' }
Data { data: 'Hello' }
Hello

没有发生错误。

req.x与new不同Data@david但是,x=新数据和req.x=x?啊,我忽略了你可以在req.x=x前后添加一些调试信息;对于console.logreq.x,我认为req应该是只读的,所以不能向其中添加其他字段。也许您可以尝试将其添加到res中。Data不是node.js类或普通JavaScript类。您还应该指定什么应用程序,一个普通的http.Server或Express.js应用程序,或者什么?请适当标记,如果可能,请包括所有相关要求,以便我们自己进行试验。