[英]Server-side data submit in Meteor
我是流星新手,我在我的应用程序中使用流星aldeed autoform和collection2包。这是我的客户端js文件。
Schema = {};
Schema.dc_address = new SimpleSchema({
'dataCenterName': {
type: String,
index: 1,
label:'Name of the Provider',
regEx: /^[a-zA-Z\s]+$/
},
'address1': {
type: String,
index: 1,
label:'Address Line 1',
regEx: /^[a-zA-Z0-9\s]+$/
},
'address2': {
type: String,
index: 1,
label:'Address Line 2',
regEx: /^[a-zA-Z0-9\s]+$/
},
});
Template.dataCenters.helpers({//dataCenters is my main template
steps: function() {
return [{
id: 'dc_address',
title: 'Name & Address',
template: 'dc_address',
formId: 'dc_address_form',
onSubmit: function(data, wizard) {
var params=_.extend(wizard.mergedData(), data);
alert(params);
var jsonrpc = new $.JsonRpcClient({ ajaxUrl: 'http://172.16.4.190:8384' });
jsonrpc.call(
'dataCenterCreate', params,
function(result) {alert('Pizzeria answered: ' + $.toJSON(result)); },
function(error) { console.log('There was an error', $.toJSON(error)); }
);
}
}];
}
});
这是我的html页面
<template name="dc_address">
<div class="form-wrapper">
{{#autoForm doc=this.data id="dc_address_form" schema=Schema.dc_address }}
<div class="col-md-12">
{{> afQuickField name="dataCenterName" placeholder="Enter DataCenter Name"}}
</div>
<table>
<tr>
<td class="col-md-6">
{{> afQuickField name="address1" placeholder="#7 4th cross"}}
</td>
<div class="col-md-1"></div>
<td class="col-md-6">
{{> afQuickField name="address2" placeholder="ITPL-banglore"}}
</td>
</tr>
<button type="submit" class="btn btn-success btn-md pull-right">Next</button>
{{/autoForm}}
</div>
</template>
尽管效果很好-尽管它是客户端提交的,但它并不安全。 如何在服务器端实现它?
为了安全起见,您应该删除自动发布和不安全的软件包。 完成此操作后,将任何内容插入数据库都将引发错误。 在控制台中尝试Posts.insert({})来查看错误。
您可以通过在服务器上添加“允许和拒绝”规则来解决此问题(有关“允许/拒绝”规则的更多信息,请参阅流星文档)。 您还可以使用以下流星方法:Meteor.call(...)将docs插入数据库而无需设置任何允许规则。 在这种情况下,您必须在流星方法中进行自己的检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.