我试图在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