Nodejs+Express 开发网站,存进数据库用了 markdown 语法,只有显示到网页上时才会解析 markdown 语法,不过显示到浏览器上时,是直接输出,而不是显示 HTML 标签!请问一下各位大大这是哪里出了问题?
Nodejs+Express 开发网站,存进数据库用了 markdown 语法,只有显示到网页上时才会解析 markdown 语法,不过显示到浏览器上时,是直接输出,而不是显示 HTML 标签!请问一下各位大大这是哪里出了问题?
NodeJS+Express 开发网站,存进数据库是用了 markdown 的语法,只有显示到网页上时才会解析 markdown 语法,可是从数据库读取数据并用了 markdown 后,是直接输出,而不是显示 HTML 标签!请问一下各位大大这是哪里出了问题?
view.content = md.toHTML(view.content);
console.log(view.content);
上面是用了 markdown,网页中是如下显示的:
<p>这只是一个测试。</p>
<p>这是另一段测试的内容</p>
将我的大于号和小于号全都转成实体了! 请问一下,是不是我哪里配置出问题了呢?
前端用的什么框架,前端的问题。我之前用 angularjs 的时候遇到过同样的问题,要加一个 rawhtml 属性,你这个问题应该类似
前端就是我只自己弄的几个小网页,没有用框架呢!那我加一下 rawhtml 属性试试,具体怎么加这个属性,给个例子好吗?
插值的时候需要用 [非转义插值] ,看看模板引擎的文档吧
多谢,还是要看文档,已解决!
建议再补习一下原生 dom 操作中 innerHTML 和 textContent 的区别以及使用场景
在你的Node.js + Express 开发网站中,如果Markdown内容直接输出到浏览器而不是解析为HTML,这通常是因为你在将Markdown内容发送到前端时没有将其转换为HTML。下面是一个基本的解决步骤和代码示例:
- 安装Markdown解析库:你可以使用
marked
这个库来解析Markdown。
npm install marked
- 在Express中解析Markdown:在你的路由处理函数中,使用
marked
将Markdown转换为HTML。
const express = require('express');
const marked = require('marked');
const app = express();
// 假设你有一个数据库查询函数获取Markdown内容
const getMarkdownFromDB = async () => {
// 这里应该是你的数据库查询逻辑,返回Markdown字符串
return "# Hello, Markdown!";
};
app.get('/', async (req, res) => {
const markdown = await getMarkdownFromDB();
const html = marked(markdown);
res.send(html);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
- 确保前端正确显示:确保你的前端页面或模板引擎(如EJS、Pug等)能够正确渲染服务器返回的HTML。
通过上述步骤,你应该能够在浏览器中看到Markdown内容被正确解析为HTML。如果仍然遇到问题,检查是否有其他中间件或配置影响了输出的内容。