因为我们部门打算用node请求restful 然后慢慢替换掉服务端,以后直接请求soa的接口,让前端的数据更贴切项目,因为我们服务端接口和app公用一套,由于业务的需求和版本不统一(例如app6.4的接口,H5可能只用到6.0)经常变动啥啥啥啥,所以我们前端常常还要经过1层dataformat(旧的业务代码改动代价太大),反正如果能实行,可行的话 将让前端带来更薄、更舒适的体验(就差夜用更长了 哈哈)。
今天别人说想用C#封装api,再调用V8解析我们写的js代码 而达到我们一般前端人员也能写处理接口的代码;我一听就建议他能用node最好用node ,没必要用C#封一层,性能谁好谁坏没有测过先不说,但是有一点很致命的是,我们组的前端就他一个比较精通C#的代码,如果他走了,接下来的摊子谁维护? 我表达了我的观点,但他一面不采纳,抛下一句:你用node能搭建出和我C#一样的稳定代码,你可以用node。 我听后不爽,我决定接下来的时间,我要研究node。今天第一步,写个笔记。
好不扯淡
说到要请求post,get,那是不是应该要有一个服务接口,那我就先搭建一个php服务,获取get和post数据,为了简单展示,直接输出获取到的数据。
<?php $name = $_GET['name']; $age = $_POST['age']; $db = $_POST['db']; $response_obj->name = $name; $response_obj->age = $age; $response_obj->sb = $db; echo json_encode($response_obj); ?>
好咱们php服务写好了,第二步就是用node去调用我们写好的php接口了
var http = require('http'); //创建一个http服务 http.createServer( function(request, //客户端发来的请求,node.js 帮我们封装成 request 对象 response //我们利用response,向客户端发送回答 ){ //在控制台显示request对象 var querystring = require('querystring'); var data=querystring.stringify({age:22, db: 'bbbbb'}); var http = require('http'); var opt = { method: "POST", host: "127.0.0.1", port: 80, path: "/demo/test.php?name=xmzzaaaa", headers: { "Content-Type":"application/x-www-form-urlencoded", "Content-Length": data.length } }; //发送一个请求 var req = http.request(opt, function (serverFeedback) { //console.log(serverFeedback.statusCode); serverFeedback.on('data', function (chunk) { //response.end('BODY: ' + chunk); response.end('response ' + chunk); //console.log('response ', chunk); }).on('end', function (chunk) { console.log('end'); }); return; }).on('error', function(e) { console.log("Got error: " + e.message); }); console.log('ccc'+data); req.end(); }).listen(888); console.log('Server start at 888');
然后再运行我们的node脚本 : node request2.js
最后访问我们的node服务地址: http://localhost:888
输出正常 ,ko,第一步踏出了,其他还有神马可怕的 哈哈哈哈