#jquery #html #css #node.js
#jquery #HTML #css #node.js
Вопрос:
Я работаю над узлом.Приложение JS. На стороне клиента у меня есть следующее
input(type='hidden', name='imgUrl', id="categorylist", value='[]')
...
var images = $.parseJSON($('#categorylist').val())
images.push(data.result.secure_url)
var jsonImages = JSON.stringify(images)
$('#categorylist').val(jsonImages)
Затем я сохраняю в orchestrate db следующим образом…
exports.addToDb = function(req, res, next){
console.log(req.body)
if(req.params.type) db.put(req.params.type, uuid.v4(), req.body, false)
next();
}
Проблема в том, что когда он сохраняется, он выглядит так…
"imgUrl": "["https://res.cloudinary.com/dbkbp16kc/image/upload/v1403448829/img.png"]"
Выглядит как «обычный»…
"imgUrl": [
"https://f0.bcbits.com/img/a2976218772_2.jpg"
]
Как вы можете видеть, кажется, что причиной этой проблемы является экранирование кавычек. Кто-нибудь знает, как бы я изменил способ обработки этого?
Комментарии:
1. почему у вас есть значение = ‘[]’ , скобки в строке?
2. Я не знаю, потому что я думал, что мне это нужно таким образом. Разве это не так?
3. удаление их полностью нарушает его * делает его «ввод (тип =’скрытый’, имя =’imgUrl’, идентификатор =»categorylist», значение = [])»
4. Используете ли вы Express? Если это так, добавьте
app.use(express.bodyParser());
в конфигурацию вашего приложения.5. Я думаю, это потому, что $(‘#categorylist’).val(jsonImages), jsonImages хранится в виде строки. Вы пробовали выполнять JSON.parse в req.body.imgUrl?
Ответ №1:
Это происходит потому, что вы stringify
используете JSON.
Удалите var jsonImages = JSON.stringify(images)
и вместо этого установите images
direclty в качестве значения '#categorylist'
input(type='hidden', name='imgUrl', id="categorylist", value='[]')
...
var images = $.parseJSON($('#categorylist').val())
images.push(data.result.secure_url)
$('#categorylist').val(images)
Обновить
@Jackie Это "imgUrl": "["https://res.cloudinary.com/dbkbp16kc/image/upload/v1403448829/img.png"]"
потому, что ты stringifying
JSON. Если вам нужно jsonImages
использовать где-то еще JSON.parse(images)
, вам лучше установить его в качестве значения #categorylist
var jsonImages = JSON.stringify(images)
...
$('#categorylist').val(JSON.parse(jsonImages))
Комментарии:
1. Я проверю это, когда вернусь домой, но вы уверены, что это сработает? Я попытался избавиться от JSON.parse, и это, казалось, привело к сбою
2. @Jackie Это
"imgUrl": "["https://res.cloudinary.com/dbkbp16kc/image/upload/v1403448829/img.png"]"
потому, что тыstringifying
JSON. Если вам нужно, чтобы он использовался где-то ещеJSON.parse(images)
, вам лучше установить его в качестве значения#categorylist