javascript服务器无法从我的vb.net前端httpwebrequest进行验证

javascript服务器无法从我的vb.net前端httpwebrequest进行验证,javascript,node.js,vb.net,mongodb,express,Javascript,Node.js,Vb.net,Mongodb,Express,我已经开发了一个web服务app.js,它可以处理mongodb数据库中的一些产品,从POSTMAN看来一切都很好,我可以做完整的CRUD(获取、发布、更新、删除),用我的vb.net应用程序我可以获取,但无论怎样POST都无法工作,这里需要一些帮助 这是我的模型 var mongoose = require('mongoose'); //Plato Schema var platoSchema = mongoose.Schema({ nombre_plato:{ t

我已经开发了一个web服务app.js,它可以处理mongodb数据库中的一些产品,从POSTMAN看来一切都很好,我可以做完整的CRUD(获取、发布、更新、删除),用我的vb.net应用程序我可以获取,但无论怎样POST都无法工作,这里需要一些帮助

这是我的模型

var mongoose = require('mongoose');

//Plato Schema
var platoSchema = mongoose.Schema({

    nombre_plato:{
        type: String,
        required: true
    },
    categoria_plato:{
        type: String,

    },
    sub_categoria_plato:{
        type: String,

    },
    descripcion:{
        type: String,

    },
    fecha_creacion:{
        type: Date,
        default: Date.now
    },
    precio_plato:{
        type: Number,

    },
    foto_plato:{
        type: String,

    },
    estado:{
        type: String,

    },
    estado_contorno:{
        type: String,

    },
    contorno:{
        type: String,

    },

});

var Plato = module.exports = mongoose.model('Plato', platoSchema);

module.exports.addPlato = function(plato, callback){
    Plato.create(plato, callback);
}
这是我的服务器模块

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');

app.use(bodyParser.json());


Plato = require('./models/plato');
//Connect to mongoose
mongoose.connect('mongodb://MYLANIP:PORT/DATABASE');

var db = mongoose.connection;

//metodo POST
app.post('/api/platos', function(req, res){
    var plato = req.body;
    Plato.addPlato(plato, function(err, plato){
        if(err){
            throw err;
        }
        res.json(plato);
    });
});

app.listen(3000);
console.log('Running on port 3000');
下面是vb.net POST方法

 Dim HttpWebRequest As WebRequest = WebRequest.Create("http://MYSERVERADDRESS/api/platos")
        ServicePointManager.Expect100Continue = False
        HttpWebRequest.ContentType = "application/json"
        Dim encoding As New UTF8Encoding
        Dim bytejson As Byte() = encoding.GetBytes(jsonString)

        HttpWebRequest.Method = "POST"



        Dim StreamWriter As Stream = HttpWebRequest.GetRequestStream


        StreamWriter.Write(bytejson, 0, bytejson.Length)


        Dim httpResponse As HttpWebResponse = HttpWebRequest.GetResponse()
        Dim streamReader = New StreamReader(httpResponse.GetResponseStream())

        RichTextBox1.Text = streamReader.ReadToEnd()
vb.net从服务器得到一个错误407作为响应,服务器因事件而崩溃。js:160 validationerror:Plato validation失败

我知道当服务器试图从vb.net获取数据时会出现某种问题,然后崩溃,但是

如果我从chrome POSTMAN中执行GET-POST-DELETE更新,我会像我所说的那样让它工作得很好,我也可以从vb.net应用程序中执行GET-POST更新,但我不能执行POST,我已经尝试了所有操作,但它拒绝工作。我必须说,如果我尝试使用vb.net服务器和测试服务器,如 它的工作原理也非常完美,因此总结如下:

POSTMAN->POST my server.js一切正常 我的vb.net应用程序POST->Json测试服务器一切正常

但是我的应用程序vb.net POST->my server.js什么都没有


有什么想法吗?提前谢谢

看来我已经设法解决了。。所有的问题都是我所不知道的

var platoSchema = mongoose.Schema({



 nombre_plato:{
        type: String,
        required: true
    },
    categoria_plato:{
        type: String,

    },
    sub_categoria_plato:{
        type: String,

    },
    descripcion:{
        type: String,
这是我的mongoose模式的一部分,我在vb.net中的类是

Private _nombre_plato As String
Private _categoria_plato As String
Private _sub_categoria_plato As String
Private _descripcion As String
Private _fecha_creacion As Date
Private _precio_plato As Double
Private _foto_plato As String
Private _estado As String
Private _estado_contorno As String
Private _contorno As String
我的错误或缺乏知识是,当我重构时,会自动生成

Public Property Nombre_plato As String
        Get
            Return _nombre_plato
        End Get
        Set(value As String)
            _nombre_plato = value
        End Set
    End Property

    Public Property Categoria_plato As String
        Get
            Return _categoria_plato
        End Get
        Set(value As String)
            _categoria_plato = value
        End Set
    End Property

    Public Property Sub_categoria_plato As String
        Get
            Return _sub_categoria_plato
        End Get
        Set(value As String)
            _sub_categoria_plato = value
        End Set
    End Property


etc 

etc

etc
正如您所见,通过访问vb.net自动生成的类的属性,将我的小写名称更改为相同的名称,但使用大写首字母,因此它与mongoose模式不匹配。。伙计,我差点被这个弄疯了


希望这也能帮助其他人。

得到更新,我减少了数据,只发送项目名称,并将字段从必填改为无,至少我从服务器收到了响应,它给了我在mongodb数据库中自动生成的项目id{“\uu v”:0,“\u id:“587ea609951eeb16a0dec713”}但是它没有注册这个名字。。同样,postman也这么做,它确实注册了名称,这让我觉得vb.net中的编码或json解析有问题。。我使用newtonsoft库解析json,测试服务器再次提交我从vb.net发送的数据