【问题标题】:Unable to query data using Postman无法使用 Postman 查询数据
【发布时间】:2015-12-04 22:30:57
【问题描述】:

我设置了一个 Node.js 服务器并尝试通过 Postman 查询数据(来自 MySQL)。 Select * from table 工作得非常好,但是当我通过 req.body.foo 读取输入时,Node.js 会抛出一个错误:

无法读取未定义的属性“长度”

Server.js:

var app = require('express')(); // Express App include
var http = require('http').Server(app); // http server
var mysql = require('mysql'); // Mysql include 
var bodyParser = require("body-parser"); // Body parser for fetch posted data
var connection = mysql.createConnection({ // Mysql Connection
host : 'localhost',
user : 'root',
password : 'mayur',
database : 'mayur',
});

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

app.get('/',function(req,res){

connection.query("SELECT * from login where username= ?? ", req.body.username ,function(err, rows, fields){
    if(rows.length != 0){
        res.json(rows);

    }else{
        var data = 'No users Found..';
        res.json(data);
    }
});
});

 app.listen(3030);

【问题讨论】:

  • 你可以分享你的邮递员部分吗?

标签: javascript mysql node.js postman


【解决方案1】:

您必须在邮递员中选择x-www-form-urlencoded,因为您使用req.body.username 访问username

将 Key 设置为 username 并将 Value 设置为有效值,一切正常。

【讨论】:

  • 一定是你选择了GET请求。将其更改为 POST 请求并将app.get('/',function(req,res) 更改为app.post('/',function(req,res)
  • 现在 localhost:3030 说 Cannot GET /
  • 尝试将if(rows.length != 0)更改为if(rows)
  • 太棒了,这行得通,但现在即使表中有用户,它也会显示“未找到用户”。无论我在 Key 字段中输入什么,它都会显示相同的输出
  • 尝试将connection.query("SELECT * from login where username= ? ", req.body.username ,function(err, rows, fields)更改为connection.query("SELECT * from login where username= ? ", [req.body.username] ,function(err, rows, fields)
猜你喜欢
  • 1970-01-01
  • 2018-01-24
  • 2020-03-06
  • 2017-06-16
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多