1.先安装node.js和express框架
node.js安装:http://www.runoob.com/nodejs/nodejs-install-setup.html
express安装和使用方式:http://www.expressjs.com.cn/starter/installing.html (建议全部看完,很容易上手)
安装有时候会遇到一些问题,试着百度解决
需要用到的框架安装
npm install express 安装express
npm install mysql 安装mysql
2.安装数据库
我使用的是mysql数据库,其他的数据库也可以,只不过在node.js中连接,操作数据库的方式不同,大同小异。
3.先搭建一个服务器和连接数据库
新建getdate.js 实现数据库的查询的操作
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var connection = mysql.createConnection({ //配置你本地的数据库
host : 'localhost',
user : 'root',
password : '88888888',
database : 'test'
});
// 该路由使用的中间件
router.use(function timeLog(req, res, next) {
console.log('Time: ', Date.now()); //获取当前的操作时间 可以取消
next();
});
router.get('/', function(req, res) {
res.send('Get Data');
});
router.get('/:id', function(req, res) {
//connection.connect();
var sql = 'SELECT * FROM test_01 where A = '+req.params.id;
console.log('ID:', req.params.id); //搜索的ID
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------nn');
// connection.end();
res.send(result);
});
});
module.exports = router;
再新建一个express-mysql.js
var express = require('express');
var app = express();
var mysql = require('mysql');
var GetDate = require('./getdate');
var connection = mysql.createConnection({ //配置你本地的数据库
host : 'localhost',
user : 'root',
password : 88888888
database : 'test'
});
connection.connect(); //一直开启连接
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
app.use('/get',GetDate); //此处是express的中间件,看过express的教程应该很快就懂
在此处已经算完成了大部分后端的大部分操作了,现在可以访问
http://localhost:3000/get/1 来查找数据库test_01表中A=1的数据了
5.实际效果如图所示:
test_01表
通过访问http://localhost:3000/get/1 的效果图
express框架可以主动把放回的数据转化为JSON
6.接下来就是实现安卓部分的代码了,其实也只要很简单的通过HTTP来访问这个URL就可以实现了
以下是关键代码
private void sendRequestWithOkHttp() { //okhttp get方式获取服务器数据
new Thread(new Runnable() {
@Override
public void run() {
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
// 指定访问的服务器地址是电脑本机
.url("http://192.168.134.2:3000/get/1")
// .url("http://10.0.2.2/get_data.json")
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
parseJSONWithGSON(responseData);
showResponse(responseData);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
private void showResponse(final String response) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在这里进行UI操作,将结果显示到界面上
responseText.setText(response);
}
});
}
服务器POST的方法大同小异
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/runanzhuan5824/article/details/79591867
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。