Не могу опубликовать данные из почтальона в базу данных с экспресс - PullRequest
0 голосов
/ 07 июня 2019

Я не могу отправить данные из почтальона в базу данных mysql. Я использую экспресс

Я пытался использовать Body и Raw x-wwww-form-urlencoded

Вот мой код (Да, все в одном файле, я знаю, что это не очень хорошая вещь, извините)

var app = express();
var bodyParser = require('body-parser');
var mysql = require('mysql');

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


// default route
app.get('/', function (req, res) {
    return res.send({ error: true, message: 'hello' })
});
// connection configurations
var dbConn = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'testexpress'
});

// connect to database
dbConn.connect(); 



// Add a new user  
app.post('/user', function (req, res) {

    let user = req.body.user;

    if (!user) {
        return res.status(400).send({ error:true, message: 'Please provide user' });
    }

    dbConn.query("INSERT INTO users SET ? ", { user: user }, function (error, results, fields) {
        if (error) throw error;
        return res.send({ error: false, data: results, message: 'New user has been created successfully.' });
    });
});

// set port
app.listen(3000, function () {
    console.log('Node app is running on port 3000');
});

module.exports = app;

вот моя ошибка скриншота из Почтальона и моей базы данных

Postman error

Database

1 Ответ

1 голос
/ 07 июня 2019

Измените свой код следующим образом.Это должно работать

// Add a new user  
app.post('/user', function (req, res) {

    let user = [req.body]
    console.log(user);

    if (!user) {
        return res.status(400).send({ error:true, message: 'Please provide user' });
    }

    dbConn.query("INSERT INTO users SET ? ", user, function (error, results, fields) {
        if (error) throw error;
        return res.send({ error: false, data: results, message: 'New user has been created successfully.' });
    });
});

Ваш код показывает это сообщение об ошибке error:true, message: 'Please provide user, потому что каждый раз в вашем коде выполняется условие if (!user), потому что let user = req.body.user собирается дать значение undefined , поэтому вы получите эту ошибку, а остальная часть кода никогда не будет выполняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...