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编码的版本,所以你可能只使用最后一个版本.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...