javascript-在节点js中使用res.render()而不是res.send()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-在节点js中使用res.render()而不是res.send(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1641字,纯文字阅读大概需要3分钟。
内容图文
![javascript-在节点js中使用res.render()而不是res.send()](/upload/InfoBanner/zyjiaocheng/681/aed3acb707994f448ce3abe0d7839342.jpg)
我已经为ckeditor编程了图像上传器.每次上传文件时,都必须将包含图像名称的html文件发送回客户端.
这是我的代码:
router.post('/upload', function (req, res, next) {
var imageName = req.files.upload.name;
var html = "<script type='text/javascript'>" +
"var funcNum = " + req.query.CKEditorFuncNum + "; " +
"var url = \"/images/" + imageName + "\";" +
"window.parent.CKEDITOR.tools.callFunction(funcNum, url);" +
"</script>";
res.send(html);
});
这是一个非常肮脏的解决方案,因此我创建了以下.hjs文件并相应地映射了值:
<script type='text/javascript'>
var funcNum = {{funcNum}};
var url = "/images/" + {{imageName}};
window.parent.CKEDITOR.tools.callFunction(funcNum, url);
</script>
而我的服务器端:
router.post('/upload', function (req, res, next) {
var imageName = req.files.upload.name;
res.render('ckeditor-response', {funcNum: req.query.CKEditorFuncNum, imageName: imageName});
});
这会生成与上面的硬编码解决方案完全相同的html文件,但是不适用于ckeditor.这两种解决方案之间有什么显着区别吗?
解决方法:
您确定[…]这会生成完全相同的html文件[…]吗?您应始终检查最终结果,例如在浏览器开发人员工具的网络标签中.
如果imageName是test.jpg,则您的第一个代码将创建
var url = "/images/test.jpg";
但是您的hjs会创建:
var url = "/images/" + test.jpg;
这是语法错误.您正在寻找“ / images / {{imageName}}”;
除此之外,您应该这样写响应:
<script type='text/javascript'>
(function() {
var funcNum = {{funcNum}};
var url = "/images/{{imageName}}";
window.parent.CKEDITOR.tools.callFunction(funcNum, url);
}());
</script>
要么
<script type='text/javascript'>
window.parent.CKEDITOR.tools.callFunction({{funcNum}}, "/images/{{imageName}}");
</script>
否则,您将使用funcNum和url污染编辑器窗口的全局名称空间.
内容总结
以上是互联网集市为您收集整理的javascript-在节点js中使用res.render()而不是res.send()全部内容,希望文章能够帮你解决javascript-在节点js中使用res.render()而不是res.send()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。