亲爱的,我使用 node js 来构建 rest API,在 post API 中,我认为当我从邮递员或肥皂 UI 测试它时,请求变为空,但是当使用来自 webstorm IDE 的测试其余功能时,它工作正常并在数据库中插入记录。我不知道到底是什么问题,但似乎插入的数据没有传递给 API
应用程序.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mysql =require('mysql');
var index = require('./routes/index');
var users = require('./routes/users');
var connection = require('express-myconnection');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
//app.use(cookieParser());
//app.use(express.static(path.join(__dirname, 'public')));
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");
next();
});
索引.js
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
/*GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.get('/settings', function(req, res) {
req.getConnection(function(err,connection){
connection.query('select * from SETTINGS',[],function(err,result){
if(err) return res.status(400).json();
return res.status(200).json(result);
});
});
});
//create
router.post('/addset', function(req, res) {
var insert_data = req.body;
req.getConnection(function(err,connection){
connection.query('INSERT INTO SETTINGS SET ?',[insert_data],function(err,rows,result){
if (!err){
var response = [];
if (rows.length !== 0) {
response.push({'result' : 'success', 'data' : rows});
} else {
response.push({'result' : 'error', 'msg' : 'No Results Found'});
}
res.setHeader('Content-Type', 'application/json');
res.status(200).send(JSON.stringify(response));
} else {
res.status(400).send(err);
}
});
});
});
我在邮递员时遇到的错误
{
"code": "ER_PARSE_ERROR",
"errno": 1064,
"sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1",
"sqlState": "42000",
"index": 0,
"sql": "INSERT INTO SETTINGS SET "
}
我通过在 postman 中将 content-type 修改为 json 解决了这个问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句