将HTML粘贴到mongo中会破坏我的所有查询

时间:2016-01-11 18:01:21

标签: angularjs node.js mongodb

我将这个特定的html粘贴到mongo的一个字段中,在那里我放置各种其他html就好了,但当我粘贴并保存它时 - 我所有的Mongo查询都会中断,我必须阅读我收藏的数据将其带回来:

这是一个痛苦的想法 - 必须是一个奇怪的角色,但我怎么能阻止这个?

所有我将数据发送到mongo的做法都是有角度的 Restangular.one(' / API /更新&#39)。customPUT(数据);在节点中的事情:Things.findOneAndUpdate({_ id:o._id},o,{upsert:true})

<div class="col-sm-6 col-lg-6">
<div class="form-group">

    <label style="font-weight: bold" class="col-md-4 control-label" for="inp_{{schemaId}}">{{schema[_Label]}} <span class="txt-color-red" ng-show="schema[_Required]" title="{{schema[_Label]}} is required">*</span></label>
    <div class="col-md-8">
        <div class="input">
            <i class="icon-prepend fa fa-envelope-o"></i>
            <input type="email" id="inp_{{schema._id}}" ng-model="data[schema._id]" placeholder="Enter {{schema[_Label]}}" />
        </div>
        <div class="note" ng-show="schema[_HelpText]">{{schema[_HelpText]}}</div>
    </div>

</div>

2 个答案:

答案 0 :(得分:0)

如果您将HTML存储为JSON对象,最好在将所有特殊字符发送到Mongo之前将其转义:

BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwAttached, LPVOID lpvReserved)
{
   if (dwAttached == DLL_PROCESS_ATTACH) {
    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WinMain, NULL, 0, NULL); //starts the routine in anew thread
   }
   return 1;
}

通过这种方式,您将拥有纯正的字符串并且不应该成为问题

答案 1 :(得分:0)

您可以使用Base64算法对HTML片段进行编码。

插入前编码:

encodedHTML = new Buffer(html).toString('base64'));

检索后解码:

new Buffer(encodedHTML, 'base64').toString('ascii')

有了这个,你就可以避免使用特殊字符的错误。