Javascript 我如何保持req.body上缺少的对象的原型?
如何在不丢失方法的情况下将带有原型方法的对象发送到后端 我创建了一个对象,并在其上原型化了两个方法:Javascript 我如何保持req.body上缺少的对象的原型?,javascript,axios,prototype,body-parser,Javascript,Axios,Prototype,Body Parser,如何在不丢失方法的情况下将带有原型方法的对象发送到后端 我创建了一个对象,并在其上原型化了两个方法: function News(news) { this.text = news.text } News.prototype = { showText: function() { console.log(this.text) }, createText: function() {
function News(news) {
this.text = news.text
}
News.prototype = {
showText: function() {
console.log(this.text)
},
createText: function() {
// DO STUFF
}
}
然后,对象看起来像
然后我通过axios+body解析器将这个obj发送到我的后端
但在我的后端,req.body上接收的对象只是:
所以我可能误解了一些东西,但身体解析器是不是在切割对象的原型?我是否应该以不同的方式发送数据以保持JavaScript对象的原型?或者有一个基本的东西我没有考虑?
以防万一,这是我的app.js上的body parser配置:
app.use(bodyParser.json({limit: '50mb'}))
app.use(bodyParser.urlencoded({ extended: true, limit: '50mb' }))
和axios:
const service = axios.create({
baseURL: process.env.NODE_ENV === 'production' ? '/api' : 'http://localhost:5000/api',
withCredentials: true
})
您不能在req.body中传递原型,您可以将其分配给不同的变量。您正在实施原型污染漏洞,这一点都不明智。只需发布字符串和/或json并从req.body获取即可。继承这些方法并不重要。更重要的是,不能用JSON发送函数!您的对象总是会失去其方法。相反,您应该在后端也有新闻代码,并使用JSON文本中的可信代码构建一个新实例。这已经很有帮助了!非常感谢。
app.use(bodyParser.json({limit: '50mb'}))
app.use(bodyParser.urlencoded({ extended: true, limit: '50mb' }))
const service = axios.create({
baseURL: process.env.NODE_ENV === 'production' ? '/api' : 'http://localhost:5000/api',
withCredentials: true
})