亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

NodeJS MongoDB崩潰“參數必須是對象”

NodeJS MongoDB崩潰“參數必須是對象”

狐的傳說 2022-06-09 16:25:56
當我運行我的服務器并將表單昵稱發送到數據庫時,我的程序崩潰了!它告訴我這是因為它需要成為一個對象。如果我將 req.body.pickname 更改為 req.body ,它運行良好,但是我需要保存的數據不會被保存。有沒有辦法把它變成一個對象,或者讓它工作?服務器.jsvar 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)});索引.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>如果有幫助,這就是我得到的錯誤。
查看完整描述

2 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

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

});


查看完整回答
反對 回復 2022-06-09
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

這似乎可行,以防將來有人遇到同樣的問題。我使用 mongodb 而不是 mongoose 要求


但是如果你有一個適用于貓鼬的解決方案,請發布它:)


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)

});


查看完整回答
反對 回復 2022-06-09
  • 2 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號