[英]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.