首页 > 解决方案 > 当我在节点 js 中将 x 设置为请求时,“x”的 getData 不起作用

问题描述

这是我的代码:

    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 ?? 
    });

请帮我!!

标签: javascriptnode.js

解决方案


这是我的实验代码:

// 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

没有发生错误。


推荐阅读