0

我想在表单提交后解析 url。我有简单的形式:

form(method='post', action='/recipe/create')
  hr
    div
      div.input.text
        label(for='recipeTitle') Tytuł przepisu:
        input(type='text', name='recipeTitle', id='recipeTitle')
      div.input.text
        label(for='photoFileName') Nazwa zdjęcia:
        input(type='text', name='photoFileName', id='photoFileName')

提交后执行此代码。

exports.create = function(req, res){
   var url = require('url'); 
   var url_parts = url.parse(req.url, true);   
   console.log(url_parts);

我的问题是为什么控制台显示空查询

{ protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: '',
  query: {},
  pathname: '/recipe/create',
  path: '/recipe/create',
  href: '/recipe/create' }
4

1 回答 1

1

发生这种情况是因为您发布到一个没有查询字符串的 URL - /recipe/create

此外,您似乎正在使用 Express,它将为您提供已解析的当前查询字符串:

// GET /search?q=tobi+ferret
req.query.q
// => "tobi ferret"

// GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse
req.query.order
// => "desc"

req.query.shoe.color
// => "blue"

req.query.shoe.type
// => "converse"

参考

于 2013-08-12T18:01:00.547 回答