今天在作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