0

I have a node js server implementation and I would like to send some values to an Android (Java) client. The method of the node js server is as follows:

app.get('/GetValues*', function (request, response) {
    // Request needs to be a GET
    if (request.method == 'GET') {

        var username = request.query.account;
        var time_now = Date.now();

        var db = database('./database.db'); 
        var row_account = db.prepare('SELECT SCORE score, STARTED_STUDY_SERVER_MILLIS timestamp, DAYS_TOTAL days_total FROM ACCOUNTS WHERE NAME = ?').get(username);

        var score = row_account.score;
        var days_total = row_account.days_total;
        var days_count = time_now - row_account.timestamp;
        var minutes_count = time_now - row_account.timestamp;

        var statement = db.prepare("UPDATE ACCOUNTS SET DAYS_COUNT = ?, MINUTES_COUNT = ? WHERE ID = ?");
        statement.run(days_count,minutes_count,getAccountID(db, request.query.account));

        var row_usage = db.prepare('SELECT DURATION_ENABLED duration_enabled, DURATION_DISABLED duration_disabled FROM USAGE WHERE NAME = ?').get(username);
        var duration_enabled = row_usage.duration_enabled;
        var duration_disabled = row_usage.duration_disabled;
    }
});

I would like to send the values score (integer), days_total (integer), days_count (integer), minutes_count (long), duration_enabled (long), duration_disabled (long) to the client.

How can I send it to the client? I think response.send() only accepts strings. How can I parse the values in Java when received?

1 Answer 1

2

Since you need to send all those values at once, it's common to respond with a JSON in such a case. In express, you can send a JSON response using response.send() or response.json() like this:

app.get('/GetValues*', function (request, response) {
  // ... your db operations here, then
  response.json({
    score: score,
    days_total: days_total,
    days_count: days_count,
    minutes_count: minutes_count,
    duration_enabled: duration_enabled,
    duration_disabled: duration_disabled
  });
});

This will send a response with Content-Type: application/json and a JSON string in the body looking like this:

{"score":12,"days_total":12,"days_count":12,"minutes_count":12,"duration_enabled":12,"duration_disabled":12}

Then you just parse it in your Java code.


By the way, this line

if (request.method == 'GET') {

is unnecessary. Registering a handler via app.get(), express will only handle GET requests anyway.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.