Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何保持req.body上缺少的对象的原型?_Javascript_Axios_Prototype_Body Parser - Fatal编程技术网

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