Javascript 对象在节点验证程序模块中没有方法替换
我使用以下节点模块是因为我想阻止XSS: 我正在尝试清理以下信息并创建JSON对象:Javascript 对象在节点验证程序模块中没有方法替换,javascript,node.js,Javascript,Node.js,我使用以下节点模块是因为我想阻止XSS: 我正在尝试清理以下信息并创建JSON对象: var story = { _id: sanitize(data._id).xss(), //string title: sanitize(data.title).xss(), //string deadline: sanitize(data.deadline).xss(), //date string descript
var story = {
_id: sanitize(data._id).xss(), //string
title: sanitize(data.title).xss(), //string
deadline: sanitize(data.deadline).xss(), //date string
description: sanitize(data.description).xss(), //string
sp: sanitize(data.sp).xss(), //number
value: sanitize(data.value).xss(), //number
roi: sanitize(data.roi).xss(), //decimal number
type: sanitize(data.type).xss(), //string
lane: sanitize(data.lane).xss() //Typically 0
}
我将模块包括在代码的顶部:sanitize=require('validator')。sanitize代码>
模块中xss.js的第178-183行:
function remove_invisible_characters(str) {
for (var i in non_displayables) {
str = str.replace(non_displayables[i], '');
}
return str;
}
从错误中,看起来您正在将0
(一个数字)传递到执行str=str.replace(…)的函数中代码>行。数字没有replace
功能。如果该函数期望并要求其输入为字符串,则可以使用str=string(str).replace(…)
在不使用new
调用字符串
构造函数时,会执行类型转换 从错误中,看起来您正在将0
(一个数字)传递到执行str=str.replace(…)的任何函数中代码>行。数字没有replace
功能。如果该函数期望并要求其输入为字符串,则可以使用str=string(str).replace(…)
在不使用new
调用字符串
构造函数时,会执行类型转换
function remove_invisible_characters(str) {
for (var i in non_displayables) {
str = str.replace(non_displayables[i], '');
}
return str;
}