NodeJS Express如何取消HTML实体的显示
我正在使用Express,Angular JS和Google App-Engine Datastore在NodeJS中构buildWeb应用程序。
我正在学习Node。 我创build了一个表单,在插入数据库之前“清理”(转义)用户input。 我遵循MDN网站上的NodeJS教程来创build这个代码:
//Trim and escape all inputs req.sanitize('requester').escape(); req.sanitize('requester').trim(); req.sanitize('dataowner').escape(); req.sanitize('dataowner').trim(); req.sanitize('requested_filepath_list').escape(); req.sanitize('requested_filepath_list').trim();
“requested_filepath_list”是UNIX文件path的列表。
所以当用户提交请求时,它以“Escaped”格式存储在数据库中。
//Escaped data /top/example/test123.txt
问题:如何“显示”数据以便显示?
//Desired output /top/example/test123.txt
我尝试了unescape函数,但它似乎不工作,它只是返回相同的输出。
let escape_str = '/top/example/test123.txt'; let unescaped_str = unescape(escape_str); console.log('unescaped_str: ' + unescaped_str); //Output unescaped_str: /top/example/test123.txt //Desired output /top/example/test123.txt
你可以试试这个:)
const querystring = require('querystring'); querystring.unescape(escape_str);
我能够使用“他”库来达到这个要求。
这里有一个post的细节: 什么是正确的方法来解码一个string,其中有特殊的HTML实体?
这是图书馆。 我能够使用npm install来安装它。
https://www.npmjs.com/package/he
示例解决scheme
const he = require('he'); let escape_str = '/top/example/test123.txt'; let unescaped_str = he.decode(escape_str); console.log('unescaped_str ' + unescaped_str);