【发布时间】:2016-01-04 23:45:53
【问题描述】:
我正在使用 Mean.JS 创建一个应用程序。
我正在尝试为我的一个模型“交换”设置一个 CRUD 模块。
我在通过界面添加新 Exchange 时遇到数据验证问题。
我返回“请填写 API 密钥”,即使在表单中我已经填写了属性:
在我的模型中(exchange.server.model.js):
var ExchangeSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Exchange name',
trim: true
},
apikey: {
type: String,
default: '',
required: 'Please fill in API Key',
trim: true
},
secret: {
type: String,
default: '',
required: 'Please fill in Secret Key',
trim: true
}
// ...
});
在我看来(create-exchange.client.view.html):
<div class="form-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" data-ng-model="name" id="name" class="form-control" placeholder="Name" required>
</div>
<label class="control-label" for="apikey">API Key</label>
<div class="controls">
<input type="text" data-ng-model="apikey" id="apikey" class="form-control" placeholder="API Key" required>
</div>
<label class="control-label" for="secret">Secret Key</label>
<div class="controls">
<input type="text" data-ng-model="secret" id="secret" class="form-control" placeholder="Secret Key" required>
</div>
</div>
在我的服务器端控制器(exchange.server.controller.js)中:
exports.create = function(req, res) {
var exchange = new Exchange(req.body);
exchange.user = req.user;
exchange.slug = req.body.name.toLowerCase().replace(' ', '');
exchange.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(exchange);
}
});
};
任何关于为什么验证失败并返回我的模型文件中定义的“必需”字符串的建议将不胜感激。
更新:
在我的服务器端控制器 (exchanges.server.controller.js) 中,我在调试时添加了以下几行:
console.log("REQUEST: " + util.inspect(req.body) );
我得到了回应:
REQUEST: { name: 'SomeExchangeName' }
没有传递 apikey/secretkey 值。
【问题讨论】:
标签: node.js validation meanjs