Когда я запускаю свой сервер и отправляю псевдоним формы в базу данных, моя программа падает! Это говорит мне, что это потому, что он должен быть объектом. Он работает нормально, если я изменяю req.body.pickname на req.body, но тогда данные, которые мне нужно сохранить, не сохраняются. Есть ли способ превратить это в объект или заставить эту работу?
сервер. js
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
Я должен отметить, что код, который находится в моем console.log (), работает отлично, и это то, что я хотел бы отправить в свою базу данных. .