简体   繁体   中英

Node getting empty array as result when post request

I am testing my post method on Postman. Whenever I post the result it would display empty array []. I console logged it on the node side and it returns empty array as well.

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username TEXT,
    email TEXT,
    password TEXT
)

INSERT INTO users (username, email, password) VALUES ($1, $2, $3);


app.post('/api/users', function(req, res, next) {
    db.post_user([req.body.username, req.body.email, req.body.password], function(err, user) {
        console.log(user);
        if(err) res.status(500).send(err);
        else res.json(user);
    })
})

I am not exactly sure why I am getting empty array instead of actual data passing in. 在此处输入图片说明

var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var cors = require('cors');
var massive = require('massive');
var config = require('./config');
var app = express();

app.use(bodyParser.json());
app.use(cors());

var db = massive.connect({connectionString: config.connectionString},     function(err, localdb){
    db = localdb;
    app.set('db', db);

});

app.get('/api/users', function(req, res, next) {
    db.get_users(function(err, users) {
        if(err) res.status(500).json(err);
        else res.json(users);
    })
})
app.post('/api/users', function(req, res, next) {
    db.post_user([req.body.username, req.body.email, req.body.password], function(err, user) {
        console.log(req.body);
        if(err) res.status(500).send(err);
        else res.json(user);
    })
})

app.listen(3000, function() {
    console.log("I am listening");
})

Because you need to do something like:

let query = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)"
let values = [req.body.username, req.body.email, req.body.password]
connection.query(query, values).then(function(user...)

Depend of what Library are you using

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM