Итак, я закодировал API в javasript, который работает с Mongoose и Express, и теперь, когда я хочу создать учетную запись, появляется ошибка:
"Ошибка: невозможно установить заголовкипосле того как они отправлены ".
Я пытался понять это с моим товарищем по команде, но мы не можем понять, что происходит ... Так что, если вы можете мне помочь, это будет очень дружелюбно
Создание учетной записи
router.post('/account/new', (req, res, next) => {
var duplicate = checkForDuplicates(req.body)
if (!duplicate) {
var encryptedPassword;
var clientIP;
bcrypt.hash(req.body['password'], saltRounds, function (err, hash) {
if (err) {
res.status(400).send(err)
}
encryptedPassword = hash;
clientIP = req.connection.remoteAddress;
Account.findOne({ username: req.body['username'] }, (err, account) => {
if (account != null) {
res.send("The account already exists")
} else {
Account.create({ username: req.body['username'], email: req.body['email'], password: encryptedPassword, ip: clientIP }, (err, createdAccount) => {
if (err) {
res.status(400).send(err)
return
}
var informations = {
username: createdAccount.username,
id: createdAccount.id
}
res.status(201).send(informations)
})
}
})
})
} else {
res.status(400).send("The account already exists")
}
});
Схема учетной записи
const mongoose = require("mongoose")
var Schema = mongoose.Schema;
var AccountSchema = new Schema({
username: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
lastip: {
type: String,
default: "0"
},
ip: {
type: String,
default: "0"
},
lastconnect: {
type: Number,
default: 0
},
exolytes: { type: String, default: "0"},
weapons: { type: String, default: "1" },
tools: { type: String, default: "1" },
ships: { type: String, default: "1" },
faction: { type: String, default: "0" },
skins: {
heads: { type: String, default: "1" },
bodys: { type: String, default: "1" }
},
currentSkin: {
head: { type: String, default: "1" },
body: { type: String, default: "1" }
},
ores: {
ore1: { type: Number, default: 0 },
ore2: { type: Number, default: 0 },
ore3: { type: Number, default: 0 },
ore4: { type: Number, default: 0 }
}
}, {
collection: 'accounts'
});
var Account = mongoose.model("Accounts", AccountSchema, "accounts");
module.exports = Account