Node.js - 在路由中表达特殊字符 (/campañas)

标签 node.js express routes character

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

我的路线是这条:

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

但我无法让它工作,因为邪恶的“Ñ”(它与“N”一起工作)

我用过一段时间的codeigniter,可以设置什么字符你想启用或者禁用 你们知道在 Node 中启用它的任何解决方法或方法吗?

最佳答案

我认为您需要同时处理 URL 编码变体和 UTF-8(可能还有 Latin-1)变体。检查以下内容:

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

    • URL encoded作为%C3%B1
      • chrome 和 firefox 发送 %C3%B1 编码
      • 我认为这是主要的顺从行为
    • 统一码?
      • 我用 curl 进行了测试,它似乎发送了一个字符,我认为这就是它从我的终端获得的任何编码,可能是 UTF-8。
  2. 在此基础上,尝试调整您的路线。您可以使用正则表达式或显式列表

.

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 编码版本,因此您可能只使用最后一个版本。

关于Node.js - 在路由中表达特殊字符 (/campañas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313238/

相关文章:

node.js - 如何通过 Nodejs Express 应用程序调用 API 获取 png 图像

Github 页面中的 Angular 路由

node.js - 如何使用书架js输出1对多对象

node.js - 即使 paranoid 设置为 true,Sequelize.js 仍然删除表行

node.js - HTTP POST 正在提交空 JSON 数组

javascript - 错误: Failed to lookup view "index" in views directory "public"

laravel - 在用户登录页面后添加路由

ruby-on-rails - rails-如何将路线映射到多个模型

node.js - Electron - 构建应用程序时找不到模块 'app'

node.js - 错误: connect ECONNREFUSED in Ionic