Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 Node.js:当我要编辑提供程序时,响应为空_Javascript_Node.js - Fatal编程技术网

Javascript Node.js:当我要编辑提供程序时,响应为空

Javascript Node.js:当我要编辑提供程序时,响应为空,javascript,node.js,Javascript,Node.js,我正在使用创建、获取、更新和删除提供商创建CRUD应用程序 Create和get工作得很好,但是我对update函数有问题。当我想要得到响应时,它是空的。我不知道为什么在app.post(“/proveedor/new”),函数(req,res){console.log(req.body)}正在打印正文,在app.put(“/proveedor/:id”)…中,他们没有给我数据 extends ../layout.jade block contenido div(class="col-md-3

我正在使用创建、获取、更新和删除提供商创建CRUD应用程序

Create和get工作得很好,但是我对update函数有问题。当我想要得到响应时,它是空的。我不知道为什么在
app.post(“/proveedor/new”),函数(req,res){console.log(req.body)}
正在打印正文,在app.put(“/proveedor/:id”)…中,他们没有给我数据

extends ../layout.jade
block contenido
div(class="col-md-3 center-block no-float top-space")
    h1 Editar Proveedor
    form(method="POST" action="/proveedor/#{product.id}?_method=put" style="margin-top:1.5em;" enctype="multipart/form-data")   

        div(class="form-group")
            label Nombre
            input(type="text" value="#{product.title}" name="titulo" placeholder="Ingresa tu nombre" class="form-control")
        div(class="form-group")
            label Descripcion
            input(type="text" value="#{product.description}" name="descripcion" placeholder="Ingresa tu descripcion" class="form-control")
        div(class="form-group")
            label Costo
            input(type="nombre" value="#{product.pricing}" name="costo" placeholder="Ingresa costo" class="form-control")
        div(class="form-group")
            input(type="file" name="avatar")
        div(class="form-group")
            label Contrasena
            input(type="password" name="password" placeholder="Ingresa tu contrasena" class="form-control")     
        div(class="form-group text-right")              
            input(type="submit" class="btn btn-info" value="Guardar")
还有我的app.js

            var express = require('express');
            var mongoose = require('mongoose');
            var bodyParser = require('body-parser');
            var multer  = require('multer');
            var upload = multer({ dest: 'upload/'});
            var fs = require('fs');
            var cloudinary = require('cloudinary');
            var method_override = require("method-override");
            var app_password = "12345";

            var app = express();

app.put("/proveedor/:id",function(solicitud,respuesta){
console.log(solicitud.body);
if(solicitud.body.password == app_password){
    var data = {
        title: solicitud.body.title,
        description: solicitud.body.description,
        pricing: solicitud.body.pricing
    };

    if(solicitud.files.hasOwnProperty("avatar")){
        cloudinary.uploader.upload(solicitud.files.image_avatar.path, 
            function(result) {
                data.imageUrl = result.url;

                Product.update({"_id": solicitud.params.id},data,function(product){
                    respuesta.redirect("/menu");
                });
            }
        );          
    }else{
        Product.update({"_id": solicitud.params.id},data,function(product){
            respuesta.redirect("/menu");
        });
    }   


    }else{
        respuesta.redirect("/");
    }
});

我对nodejs也是新手。我认为问题可能在于多部分/表单数据发布。即使使用主体解析器,也无法直接从多部分post获取数据

:这不处理多部分实体,因为它们复杂且通常较大

因此,当您验证密码时,它不会永远通过,因为您的密码未定义或什么都没有。 你需要分析你的多部分文章


然而,我对你说你可以在create函数中打印一些东西感到困惑。我认为它会打印未定义的内容,但它没有。

是的,昨天我发现了。穆特是解决办法。谢谢你,伙计。