CodeMirror - 将代码放入元素标记中

时间:2015-11-01 01:27:07

标签: javascript jquery node.js codemirror

我试图在Node.JS中创建类似于pastebin的网站。我使用Jade作为我的渲染引擎,而CodeMirror插件则使用类似IDE的环境。

当我在CodeMirror中编写代码并将其提交到我的数据库时,一切看起来都很棒。从数据库加载时,我将其记录在控制台中,以确保它能正确输出。在它发送到页面之前,我再次登录它。在遇到CodeMirror脚本之前,一切似乎都很好。

控制台日志文件在将其发送到网页之前输出。

<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <p>Awesome work you're doing, champ!</p>
    </body>
</html>

当它显示在CodeMirror文本区域时,它看起来像这样:

<<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <p>Awesome work you're doing, champ!</p>
    </body>
</html>><<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <p>Awesome work you're doing, champ!</p>
    </body>
</html>/>

基本上它出于某种原因将所有代码转换为HTML元素。我尝试关闭自动格式化,但它没有做任何事情。

即使我输入一串文字,例如

test

它会返回

<test></test>
来自index.jade的

片段,用于呈现代码镜像文本区域

form(method='post', id='paste-form')
    form(method='post')
        textarea(name='paste', id='editor')
            if (doc)
                #{doc}
script.
    var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
        lineNumbers: true,
        mode:  "text/html",
        closeTagEnabled: false
    });
    editor.setSize('100%', '100%');

script.
    function myFunction() {
        document.getElementById("paste-form").submit();
    }

从app.js

呈现.jade文件的功能
app.get('/paste/:id', function(req, res) {
    Paste.findOne({paste_id: req.params.id}, function(err, doc) {
        if(err) throw err;
        console.log(doc.paste);
        res.render('index.jade', {doc: doc.paste});
    });
});

提前致谢, Axze

0 个答案:

没有答案