微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.js – 表示路线中的特殊字符(/campañas)

尝试使用Express框架在Node JS中设置路由时遇到问题.

我的路线是这样的:

app.get('/campaña/nueva',sms.nueva);

但我不能让它工作,因为邪恶的“Ñ”(它与“N”tho一起使用)

我使用codeigniter一段时间,您可以设置要启用或禁用的字符
你们知道在节点中启用它的任何workarround或方法吗?

解决方法

我认为你需要同时处理URL编码和UTF-8(也可能是Latin-1)变体.检查以下内容

>您的客户(浏览器)如何发送URL?

> URL encoded为ñ?

> chrome和firefox发送ñ编码
>我认为这是主导和合规的行为

> Unicode?

>我测试了卷曲,它看起来发送一个字符,我认为它只是从我的终端获得的任何编码,这可能是UTF-8.

>基于此,尝试调整您的路线.您可以使用正则表达式或显式列表

.

app.get('/campaña/nueva',sms.nueva)
app.get('/campa%c3%b1a/nueva',sms.nueva)
//Or for convenience if you like
app.get('/' + encodeURIComponent('campaña') + '/nueva',sms.nueva)

我的猜测最终是大多数浏览器都会发送URL编码的版本,所以你可能只使用最后一个版本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐