【发布时间】:2019-07-15 17:24:33
【问题描述】:
我有一个用 ExpressJS 构建的 RestAPI。 POST 方法运行良好并将数据保存到 MySQL。这是我的代码:
路由器(index.js)var express = require('express');
var router = express.Router();
var cont = require('../controllers');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
/* REGISTER */
router.post('/personal-info', cont.personalInfo.createNewUser);
module.exports = router;
控制器(PersonalInfo.js)
const PersonalInfo = require('../models').PersonalInfo;
const utils = require('../Utils/ResUtils');
module.exports = {
createNewUser(req, res) {
var name = req.body.name,
age = req.body.age
PersonalInfo.create({
name : name,
age : age,
createdAt: new Date(),
updatedAt: new Date()
}).then(Personal_Info => {
res.json({
'status': 'OK',
'messages': 'Personal Info Created',
'data': Personal_Info
})
}).catch( reason => utils.error(res, reason));
}
}
模型(PersonalInfo.js)
'use strict';
module.exports = (sequelize, DataTypes) => {
const PersonalInfo = sequelize.define('PersonalInfo', {
name: DataTypes.STRING,
age: DataTypes.INTEGER
}, {
tableName: "PersonalInfo",
timestamp: false
});
PersonalInfo.associate = function(models) {
// associations can be defined here
};
return PersonalInfo;
};
即使服务运行成功。我有点问题,
- 即使属性
age包含varchar 数据,数据也已成功插入db。 - 即使属性
name只包含"",而属性集NOT_NULL = true,数据成功插入db
如何避免处理上述问题并发送错误响应,例如 Age should be Integer。
谢谢。
【问题讨论】: