Я учусь настраивать сервер Express и столкнулся со странной проблемой при создании новых пользователей.Запрос POST проходит и не выдает ошибки, и переносит меня на панель инструментов, но когда я просматриваю базу данных sqlite, он показывает все значения из регистрационной формы, сохраненные как неопределенные.Я установил body-parser и правильно вызвал его на сервер.
Я попытался изменить расширенный: true вместо false и добавил добавление res.setHeader ('Content-Type', 'text / plain') в app.use, как указано в руководстве по анализу тела, но это все ещекаждый раз сохраняется как неопределенное.
вот мой код server.js
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.setHeader('Content-Type', 'text/plain');
next();
});
вот код POST в файле server.js
app.post('/register', function(req, res) {
bcrypt.hash(req.body.password, saltRounds, function(err, hash) {
let db = new sqlite3.Database("./database/InvoiceApp.db");
let sql = `INSERT INTO users(name, email, company_name, password) VALUES ('${req.body.name}','${req.body.email}','${req.body.company_name}','${hash}')`;
db.run(sql, function(err) {
if (err) {
throw err;
} else {
return res.json({
status: true,
message: "User Created"
});
}
});
db.close()
});
});
и этомой код формы, я использую vue.js
register () {
const formData = new FormData()
let valid = this.validate()
if (valid) {
formData.append('name', this.model.name)
formData.append('email', this.model.email)
formData.append('company_name', this.model.company_name)
formData.append('password', this.model.password)
this.loading = "Registering you, please wait"
axios.post('http://localhost:3128/register', formData).then(res => {
this.loading = ''
if (res.data.status === true) {
this.$router.push ({
name: 'dashboard',
params: { user: res.data.user }
})
} else {
this.status = res.data.message
}
})
} else {
alert('Passwords do not match')
}
}
Я не получаю сообщений об ошибках при создании нового пользователя, только если я пытаюсь войти в систему как созданный пользователь или выполнить другие действия, связанные с созданным пользователем.Почему моя форма сохраняется как неопределенная в sqlite DB?