【问题标题】:Node.js: Can't insert form data in MongoDB with POST requestNode.js:无法使用 POST 请求在 MongoDB 中插入表单数据
【发布时间】:2017-11-07 07:01:27
【问题描述】:

我正在尝试使用脚本将数据插入 MongoDB。通过浏览器插入它可以正常工作,但不是这样。我关注了this 之类的帖子,但没有成功。我的控制台确实记录了数据,但随后显示

body: cannot post

谁能告诉我这段代码有什么问题?请求文件:

const options = {
    host: '127.0.0.1',
    port: '8081',
    protocol: 'http:',
    path: '/',
    method: 'POST',
     headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': Buffer.byteLength(data)
    }
};

var http = require('http');
var req = http.request(options);
var querystring = require('querystring');
var opn = require('opn');
var data = querystring.stringify({
      scoutName: 'john',
      scoutSurname: 'doe',
      scoutPassword:'123'

    });
 //opn('http://127.0.0.1:8081/');

    var req = http.request(options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log("body: " + chunk);
    });
});

req.write(data);
console.log(data);
req.end();

还有服务器文件:

app.post('/scout_post', urlencodedParser,function (req,res){

   var name= req.body.scoutName,
        surname=req.body.scoutSurname,
        password=req.body.scoutPassword;

            db.collection('scoutPost').insertOne(
                { 'name': name, 'surname': surname,'password':password},
                function (err, r) {
                    assert.equal(null, err);
                    res.send("Document inserted with _id: " + r.insertedId);
                }
            );
     console.log("post received: " + name);


})

【问题讨论】:

    标签: javascript node.js mongodb post


    【解决方案1】:

    在 Node.js 中使用 Mongoose 处理 MongoDB

    var mongoose = require( 'mongoose' );
    var Employee = mongoose.model( 'Employee' );
    
    exports.addEmployee=function(req,res){                                  
    
                      var newEmployee=new Employee();
    
                      newEmployee.email=req.body.email;
                      newEmployee.name=req.body.name;
                      newEmployee.dob=req.body.dob;
                      newEmployee.sex=req.body.sex;
                      newEmployee.department=req.body.department;
                      newEmployee.age=req.body.age;
    
                      newEmployee.save(function(err,savedEmployee){
                           if(err){
                              var message="Error occured while storing new employee !!!";
                              console.log(message+"\n"+err);
                              res.status(500).send("Error Occured while saving Employee");
                            }else{
                             res.status(201).send(savedEmployee);
                              }
                     });
    
                  }
    

    这里是猫鼬模式

    var employeeSchema = new mongoose.Schema({
      email: {type: String},
      name: {type: String},
      dob: {type: Date},
      sex:{type:String},
      department:{type:String},
      age:{type:Number}
    });
    
    mongoose.model( 'Employee', employeeSchema );
    

    【讨论】:

      猜你喜欢
      • 2017-11-08
      • 2014-12-08
      • 1970-01-01
      • 2023-01-08
      • 2016-04-05
      • 2012-02-07
      • 2020-01-02
      • 2015-09-20
      • 2018-08-28
      相关资源
      最近更新 更多