जब मैं अपना सर्वर चलाता हूं और डेटाबेस को प्रपत्र उपनाम भेजता हूं, तो मेरा प्रोग्राम क्रैश हो जाता है! यह मुझे बता रहा है क्योंकि इसे एक वस्तु होने की जरूरत है। यह ठीक चलता है अगर मैं req.body.pickname को सिर्फ req.body में बदलता हूं लेकिन फिर मुझे जो डेटा सहेजने की ज़रूरत है वह सहेजा नहीं जाता है। क्या इसे किसी वस्तु में बदलने या यह काम करने का कोई तरीका है?

सर्वर.जेएस

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));



var PORT = 45050;

app.use("/", express.static(__dirname));
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost/thisworks", {
    useNewUrlParser: true
});


var gameSchema = new mongoose.Schema({
    nickname: String
});
var User = mongoose.model("wowww", gameSchema);


app.post("/addname", (req, res) =>{
    var playerNickname = new User(req.body.pickname);
    playerNickname.save()
    .then(item => {
        console.log("nickname created " + req.body.pickname);

    })
    .catch(err => {
        res.status(400).send("unable to save to database");
        console.log("error baby!");
    });
});

app.listen(PORT, function () {
    console.log("server is up and running using port " + PORT)
});

Index.html

<form method="post" action="/addname">
    <h1 class="center-align"> <input id="pickName" class="center-align" type='text' name='pickname' placeholder='Nickname' required> </h1>
    <h1 class='center-align'><input id='rea2dy' value=" Ready >" type='submit'></h1>               
 </form>

यह वह त्रुटि है जो मुझे मिलती है अगर इससे मदद मिलती है।

ObjectParameterError: Parameter "obj" to Document() must be an object, got 
redditaza
at new ObjectParameterError (C:\Users\10FGD\node_modules\mongoose\lib\error\objectParameter.js:25:11)
at model.Document (C:\Users\10FGD\node_modules\mongoose\lib\document.js:89:11)
at model.Model (C:\Users\10FGD\node_modules\mongoose\lib\model.js:104:12)
at new model (C:\Users\10FGD\node_modules\mongoose\lib\model.js:4656:15)
at app.post (C:\Users\10FGD\Desktop\Games\doubleTheTrouble\server.js:27:26)
at Layer.handle [as handle_request] (C:\Users\10FGD\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\10FGD\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\10FGD\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\10FGD\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\10FGD\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\10FGD\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\10FGD\node_modules\express\lib\router\index.js:275:10)
at serveStatic (C:\Users\10FGD\node_modules\express\node_modules\serve-static\index.js:75:16)
at Layer.handle [as handle_request] (C:\Users\10FGD\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (C:\Users\10FGD\node_modules\express\lib\router\index.js:317:13)
at C:\Users\10FGD\node_modules\express\lib\router\index.js:284:7

मुझे ध्यान रखना चाहिए कि मेरे कंसोल.लॉग() में जो कोड है वह ठीक काम करता है, और यही वह है जिसे मैं अपने डेटाबेस में भेजना चाहता हूं।

0
Pylot 2 अप्रैल 2020, 08:09
1
अपने console.log में, आपको item प्रिंट करना चाहिए, न कि req.body.pickname
 – 
oneturkmen
2 अप्रैल 2020, 08:11
धन्यवाद अच्छा बिंदु, मैं बस सोच रहा था कि क्या req.body.pickname डीबी को भेज रहा था जिससे यह दुर्घटनाग्रस्त हो गया, लेकिन यह मुझे दुर्भाग्य से नहीं दिखा।
 – 
Pylot
2 अप्रैल 2020, 08:22
हम्म बस आइटम डालें और मेरी स्ट्रिंग वापस करने के बजाय यह वापस आ गया: { _id: 5e8576fc036a403d1c1bcfc9, __v: 0 } मैं मोंगोडब से परिचित नहीं हूं यह सब मेरे लिए इतना विदेशी है! ज़ोर - ज़ोर से हंसना
 – 
Pylot
2 अप्रैल 2020, 08:25

2 जवाब

ऐसा लग रहा था कि भविष्य में किसी को भी यही समस्या हो। मैंने नेवले की आवश्यकता के बजाय मोंगोडब का इस्तेमाल किया

लेकिन अगर आपके पास कोई समाधान है जो नेवले के साथ काम करता है तो कृपया इसे पोस्ट करें :)

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


var PORT = 3332;

app.use("/", express.static(__dirname));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));


mongoose.connect("mongodb://localhost/thisworks", {
    useNewUrlParser: true
});
   var db = mongoose.connection;
   db.once('open', function(cb) {
   console.log("connection established");
})


app.post("/addname", (req, res) =>{
    var name = req.body;
    var data = {
        "nickname": name
    }
    db.collection('wowww').insertOne(data, function(err, coll) {
        if(err) throw err;
        console.log('rec estab');
    });

});






app.listen(PORT, function () {
    console.log("server is up and running using port " + PORT)
});
0
Pylot 2 अप्रैल 2020, 09:16
const express = require('express');
var mongoose = require('mongoose');
const bodyParser = require('body-parser');
var morgan = require('morgan');
var cors = require('cors')
const app = express();

// CORS Middleware
app.use(cors());
// Logger Middleware
app.use(morgan('dev'));
// Bodyparser Middleware
app.use(bodyParser.json());


const MongoClient = require('mongodb').MongoClient;
const uri = "uri";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
  console.log('MongoDB Connected...')
  const collection = client.db("dbname").collection("collectionname");

  app.post('/name', (req, res) => {
    collection. insertOne({ name: req.body.name })
    res.send("data added")
  });

});

const port = process.env.PORT || 5000;

app.listen(port, function () {
  console.log(`Example app listening on port ${port}`);
});
0
Sherin Shaju Athickal 2 अप्रैल 2020, 09:44
2
हालांकि यह कोड प्रश्न को हल कर सकता है, एक स्पष्टीकरण सहित यह समस्या कैसे और क्यों हल करता है, वास्तव में आपकी गुणवत्ता में सुधार करने में मदद करेगा पोस्ट, और शायद अधिक अप-वोट में परिणाम। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, न कि केवल उस व्यक्ति के लिए जो अभी पूछ रहा है। स्पष्टीकरण जोड़ने के लिए कृपया अपने उत्तर को संपादित करें करें और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं।
 – 
Dharman
2 अप्रैल 2020, 13:59