20141022 journey - node.js搭建 jsonp服务。

本文详细介绍了如何使用Node.js和Express框架搭建RESTful服务,并进行了JSONP测试。包括服务端代码实现、客户端使用jQuery进行调用、遇到的问题以及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作 电脑 卡得让人难受。准备格式化硬盘然后拿去公司修。目前只装个node
npm init
npm install --save express
vi index.js

开始今天的测试。

var express = require('express');
var app = express();
app.get('/',function(req,res){
  res.type('text');
  res.send('hello.');
});
app.get('/users',function(req,res){
 console.log('get /users called.')
 res.type('json');
 res.send('[{user:"cyper",age:30},{user:"green",age:28}]');

});

app.listen(3000,function(){console.log('listening 3000.');});

简单的restful service就搭建好了。接下来进行jsonp测试。

bower install jquery#1.11.1
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript"src="bower_components/jquery/dist/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            var url = "http://192.168.1.100:3000/users?callback=?";
            $.getJSON(url, function(data){
                $('#test').html(data[0].user);
            });
            $.ajax({
                url: url,
                dataType: 'jsonp',
                complete:function(xhr,status){
                    console.log("complete:",status);
                },
                success: function(data){
                    $('#test').html(data[0].user);
                },
                error: function(xhr, status, err){
                    console.log("error:",err);
                }
            });
        });
    </script>
</head>
<body>
<div id="test"></div>
</body>
</html>
以上使用jquery调用jsonp服务的两种方式,当然第一种最简单。,注意json的key最好用“号括起来。
测试失败,报parseerror的错误,解决方案详见以下两篇文章:

http://stackoverflow.com/questions/5359224/parsererror-after-jquery-ajax-request-with-jsonp-content-type
http://stackoverflow.com/questions/5943630/basic-example-of-using-ajax-with-jsonp

需要修改服务端, 修改如下:

var express = require('express');
var app = express();
app.get('/',function(req,res){
  res.type('text');
  res.send('hello.');
});
app.get('/users',function(req,res){
 res.type('json');
 var callback = req.param('callback');
 console.log('callback:',callback);
 res.send(callback + '([{"user":"cyper","age":30}])');

});

app.listen(3000,function(){console.log('listening 3000.');});

测试成功。接下来work & CDR...切换到J2EE模式。启动DB
su db2inst1
db2start.
启动文件服务(我的目录太乱了。唉东西到处都是)
cd /home/cyper/workspaces/jee/ibm_w3_server

 sudo ./ibm_w3_server内容如下
#!/bin/bash
apachectl stop
node ibm_w3_server.js &

打开firefox HostAdmin插件,开启所有代理
192.168.1.101       1.w3.s81c.com #w3.s81c
192.168.1.101       w3.ibm.com #w3
192.168.1.101       tmscdn.coremetrics.com #rubbish
192.168.1.101       data.coremetrics.com #rubbish
192.168.1.101       libs.coremetrics.com #rubbish
192.168.1.101       faces.tap.ibm.com #faces
192.168.1.101       pt200204.unica.com #pt200204
192.168.1.101       service.maxymiser.net #rubbish




以上二服务,让我可以离线工作,飞一般的感觉。
 启动eclipse.. ,

1)checkout latest code
2)modify code
3)commit code, merge to other branch as needed
4)update CDR and upload and leave comments.
5)test and update UT, make screenshots as needed.
6)package and upload and raise tracker and send email notification for approve tracker.

由此可见,改一个简单的defect要经历这么多步骤。上传文档或代码包需要耗费不少的时间。这些都要算在sizing里边.







转载于:https://my.oschina.net/uniquejava/blog/336176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值