2017-05-31 21 views
2

我有這段代碼從url中刪除查詢參數,但它不工作。你能看看嗎?刪除查詢參數使用node.js不工作

const url = require('url') 
 

 
const obj = url.parse('http://www.example.com/path?query1=val1&query2=val2', true) 
 
delete obj.query.query2 
 
const link = url.format(obj) 
 
console.log(link) // I was expecting the removal of query2 but it didn't happen

它登錄的網址與上面過去了,爲什麼query2不會被刪除?由於

+0

你試圖讓'link'是通過'http://www.example.com/path QUERY2 = val2' –

+0

@ d-收割機在我看來,像他正試圖使它'http://www.example.com/path?query1 = val1'而不是2 – WORMSS

+0

@ D-reaper以其他方式,完全刪除'query2'。 @OP要刪除一個鍵值對,你需要做'刪除object.obj ['key'];',我已經看過重構URL但沒有骰子。上述將從'query'對象中移除'query2'。 –

回答

1

你需要從對象

const obj = url.parse('http://www.example.com/path?query1=val1&query2=val2', true) 
delete obj.query.query2 
delete obj.search 

const link = url.format(obj) 
console.log(link) 

刪除搜索節點這將返回URL http://www.example.com/path?query1=val1

1

即使你從查詢對象中刪除query2query2仍然存在於搜索領域。

const url = require('url'); 

const obj = url.parse('http://www.example.com/path?query1=val1&query2=val2', true) 
console.log(obj); 
delete obj.query.query2 
delete obj.search 
console.log(obj); 
const link = url.format(obj) 
console.log(link) 
0

const url = require("url") 
 

 
const urlObj = url.parse('http://www.example.com/path?query1=val1&query2=val2', true) 
 

 
delete urlObj.query.query2 
 
delete urlObj.search 
 

 
const newUrl = url.format(urlObj) 
 

 
console.log(newUrl) // print >> http://www.example.com/path?query1=val1