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应用程序,或者什么?请适当标记,如果可能,请包括所有相关要求,以便我们自己进行试验。