1

我正在创建一个模板文字,如下所示:

const someVar = 'hello'    

const str = `
  Some random
  multiline string with string interpolation: ${someVar}
`

然后在我的 Koa 应用程序中,我正在做:

this.cookies.set('str', str)

显然它不喜欢多行字符串,因为它给出了这个错误:

TypeError:参数值无效

有没有办法解决?在我的情况下,保持空白格式是非常必要的。

4

1 回答 1

2

这与模板文字无关;当你收到错误时,你有一个带有换行符的字符串。cookie 值中不能有换行符。

保留这些换行符的最佳方法可能是使用 JSON:

this.cookies.set('str', JSON.stringify(str));

当然,您JSON.parse在使用时需要它。

当然,您不必使用 JSON;您可以使用 URI 编码:

this.cookies.set('str', encodeURIComponent(str));

...然后使用decodeURIComponent(或任何消耗字符串的等效项)对其进行解码。

于 2016-10-31T09:58:52.517 回答