Node Express - 表单提交后的空查询

时间:2013-08-12 17:57:11

标签: forms node.js express

我想在表单提交后解析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' }

1 个答案:

答案 0 :(得分:1)

这是因为您要发布到没有查询字符串的网址/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"

Reference