节点JS-在将数据插入数据库时​​出现“无法获得任何响应”

时间:2018-07-10 17:50:51

标签: javascript mysql node.js express

我正在尝试使用nodejs将一些数据插入到我的数据库(mysql)中,并且我已经做了一些代码,但是在邮递员中,它显示无法获得任何响应,即使我知道我遵循了正确地看了我看过的一些教程。

这是我的代码

SendOrder.js(模型)

var db=require('../dbconnection');

var Task = {
    addTask:function(Task,callback){
        return db.query("Insert into orders ( order_id, order_no, tbl_id, menu_id, \
            order_quantity, order_discount, order_type, \
            order_amount, menu_name, menu_price ) values(?,?,?,?,?,?,?,?,?,?)",
        [
            Task.order_id, Task.order_no, Task.tbl_id, Task.menu_id,
            Task.order_quantity, Task.order_discount, Task.order_type,
            Task.order_amount, Task.menu_name, Task.menu_price
        ], callback);
    },
}

module.exports=Task;

SendOrder.js(路由器)

var express = require('express');
var router = express.Router();
var Task = require('../models/SendOrder');

router.post('Send/', function(req, res, next){
        Task.addTask(req.body,function(err,count){
            console.log(req.body);
            if(err)
            {
                res.json(err);
            }
            else{
                res.json(req.body);
            }
        });
});

module.exports = router;

编辑:

dbconnection.js

var mysql=require('mysql');
var connection=mysql.createConnection({

    host: 'localhost',
    user: 'root',
    password: '',
    database: 'opob',

});

module.exports=connection;

app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var mysql = require('mysql');
var connection = require('express-myconnection')

var SendOrder = require('./routes/SendOrder');           // SendOrder

var app = express();  

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/SendOrder', SendOrder);                        // SendOrder

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Postman

2 个答案:

答案 0 :(得分:0)

在这里您共享的所有内容都有以下可能性:

  1. 您要命中的IP / PORT错误。请再次交叉验证它们。
  2. 要安装的邮递员无法访问要尝试击中的IP(我添加了这种可能性,因为您使用的是IP而不是localhost)
  3. 第三种可能性是当您点击Send/ API时服务器崩溃。如果问题出在您的代码上,则很可能是原因。在这种情况下,您可以检查服务器控制台以查找崩溃日志和堆栈跟踪。

@Hardik在评论中提到的网址不是错误的URL,因为它将返回404。

答案 1 :(得分:0)

转到邮递员中的设置

  1. 关闭常规标签中的SSL certificate verification:(请求下的第二个选项) enter image description here

  2. 关闭代理标签中的Global Proxy ConfigurationUse System Proxyenter image description here

如果两种方法都不起作用,请尝试以下代码:

if(err)
{
    return res.status(500).json(err);
}
else{
    return res.status(200).json(req.body);
}

希望,这可能会对您有所帮助!

===========编辑=============

查看您的app.js文件。看来您需要使用body-parser包来解析请求中的JSON数据。

npm install body-parser --save
  

body-parser提取传入请求流的整个正文部分,并将其公开在req.body上。