正如您在此处看到的那样,您可以这样做,通过添加 limit(1) 确保不会获得多个结果。
const Datastore = require('@google-cloud/datastore');
const datastore = new Datastore({
projectId: 'cf-datastore',
keyFilename: 'datastore-credential.json'
});
const kindName = 'user-log';
async getlog = (req, res) => {
let uid = req.query.uid || req.body.uid || 0;
//let log = req.query.log || req.body.log || '';
const key = datastore.key(['uid','log']);
datastore
.get(key,(err, entity) => {});
const query = datastore.createQuery('uid');
query.filter('uid', uid);
query.limit(1);
const transaction = datastore.transaction();
console.log("Transaction");
console.log(transaction);
const results = datastore.runQuery(query, (err, entities) => {
// entities = An array of records.
// Access the Key object for an entity.
firstEntityKey = entities;
console.log("Entities")
console.log(entities);
});
console.log("GOT IT");
console.log("Results")
console.log(results);
//console.log("Entity");
//console.log(entity);
const task = await datastore.runQuery(query);
console.log(task);
//second part
res.status(200).send(results);
};
exports.executed = (req, res){
console.log(` CALLING`);
getlog(req, res)
setTimeout(() => {
resolve('resolved');
}, 20000);
}