今天在作API改造,並添加新的接口,代碼大體是這樣的,使用的是Node.js的express框架,同一個項目裏面有一小塊用的ejs模板來寫html,另外大部分使用的Restful的方式傳輸json數據。
某個route內容以下:javascript
var data=require('./path') module.exports = function (app) { app.post('/data', data.view_add); app.post('/data/json', data.view_addjson); app.get("/data/:dataid", data.view_findOne); /*中間還後不少接口*/ //////////////////////// app.get("/data/test", data.test); };
前面有不少post和get。我須要測試一個本身寫的方法,也就是/data/test
接口所對應的,這個若是請求正確,將會返回一串有意義的json數據。
可是我實際測試的時候,這個接口死活只給我返回一個自定義的錯誤碼,可是將這個方法放到其餘的route文件裏倒是正常工做的,這時候就百思不得其解了。html
遇到了問題就要設法去解決。先是想到了data.test
的寫法是否是有問題,可是一樣的代碼段放到其餘地方是正確工做的,明代碼沒問題。
實在想不出是哪裏可能出現問題了,就用了最笨的辦法,單變量。
把除了app.get("/data/test", data.test);
以外的其餘url註釋掉。這時候這段代碼正常工做了。而後一條一條的去掉註釋(我這裏api的數量少,都好辦事兒)。
去掉註釋到app.get("/data/:dataid", data.view_findOne);
這一條url的時候就不正常工做了!
仔細看了一下,被本身坑死了!問題出在/data/:dataid
和/data/test
上面。由於前者寫在前面,當我請求/data/test
url的時候,被解析成了/data
加上參數test
,可是實際上個人意圖是/data/test
,正好/test
對不正確輸入的處理是返回一段錯誤碼。
就這樣找,耗了小半天時間。java
同一個項目裏面,仍是儘可能保持風格一致,雖然在寫代碼的時候比較麻煩一點,可是後面維護,包括交接代碼給別人,都會輕鬆不少。代碼只管寫,無論維護也是在耍流氓。
不少公司不缺有能力的人,也不缺技術實力,可是老是作不成氣候,整個組織和管理是個問題吧。真的不想這樣一我的作一個項目的工做了,時間久了都不會與人交流,寫出來的代碼都無法和隊友的代碼合併。express