0

node.js と postgresql を使用して 1 つのアプリを作成し、要求されたユーザー ID に応じてユーザーの都市を表示しました。ブラウザーで (localhosthost:7070/user/userId/city) でこの URL をヒットした場合は、高速取得要求を使用することを意味しますメソッドを呼び出して、要求されたユーザー ID を使用してデータベースから要求されたユーザー都市を取得します。問題なく正しい出力が得られますが、他の問題に直面しています。

問題

最初にブラウザで localhost:7070/user/1/city の URL にアクセスすると、結果が出力され、結果がページに表示されることを意味します。エラーや出力は得られませんが、私のページは常に読み込まれています。他のユーザーのためにそれをやりたい場合は、ノードサーバーを再起動する必要があります。

ここに私のコードを添付しました...

サーバー.js

var pg = require('pg'); 
var conString =require('./config');
var client = new pg.Client(conString);
var queryModule=require('./query');
var express=require('express');
var app=express();
app.use(express.static(__dirname + '/public'));
app.listen(7070);

console.log('Server started at port 7070.');
app.get('/user/:id/city',function(req, response){
    client.connect(function(err, result){
        if(!err){
            var userId=req.param('id');
            queryModule.findCityByUserId(client,userId,function(err,res){
                if(!err){
                    console.log('done');
                    response.send('Requested user city is '+res);
                    return;
                }
                console.log('Error while finding the city of the user ' + err);
            });
        } else {
            console.log('error while connecting client '+err);
        }
    });
 });

query.js

 function Query(){
 }

module.exports=Query;

Query.findCityByUserId = function(client, id, cb){
    client.query("SELECT city FROM userinfo WHERE id=" + id, function(err,res){
        if(err){
            return cb(err);
        }
        client.end();
        var row = res.rows['0'];
        console.log("row length: " + res.rows.length);
        Object.keys(row).forEach(function(key){
            cb(null, row['city']);
        });
    });
};
4

1 に答える 1