
Hello everyone. I'm creating my first Node.JS function, but I don't have much experience with node and javascript.
I'm trying to create a function, that monitor events (update/create) around a specific collection. Every time a specific field of every document is updated or created in this collection, I need to update other fields.
However, I am experiencing difficulties in capturing events. I have configured the function on AppWrite Cloud, and when an event of these happens, my function is called, but then I haven't figured out how to capture the event inside node.js.
Also it seems there is no documentation on AppWrite docs about how to monitor events, so every help is much appreciated!
cc @Kenny

Hey! So to grab the event data you can do something like this
import { Client, Databases } from 'node-appwrite';
export default async ({ req, res, log, error }) => {
// The event should send the payload in the body
const body = req.bodyJson;
const id = body['id'];
// To get the information you want out of this you could do something like
const attributeData = body['attribute'];
// Do whatever calculations you need to set the new attributes derived value.
const newAttributeData = attributeData + 1;
// Setup your client
const client = new Client()
.setEndpoint(process.env.APPWRITE_FUNCTION_API_ENDPOINT)
.setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID)
.setKey(req.headers['x-appwrite-key'] ?? '');
const database = new Databases(client);
try {
// Update the derived attribute.
const response = await database.updateDocument(DATABASE_ID, COLLECTION_ID, id, {
newAttribute: newAttributeData
});
} catch(err) {
// Log any errors.
error(err.message);
}
// Return
return res.empty();
};

I didn't create a function and test this out, but this should be the logic you need to accomplish what you want

Thanks, Kenny! Let me test it 🙂

Here is the appropriate documentation https://appwrite.io/docs/products/functions/develop#request https://appwrite.io/docs/advanced/platform/events

it works! Amazing

Thanks, Kenny 🌈 kudos to you!

I was using a completely wrong approach

As far as you know, is it possible to trigger an event, if just specific attributes are updated, instead of the whole document @Kenny ?

I don’t believe so :(
Recommended threads
- Server Error when Pushing a Function
Get this ambiguous error when trying to push my function, it's TypeScript using NodeJS 18 ``` ? Which functions would you like to push? get-grades (get-grades)...
- Hola equipo de soporte,
Hola equipo de soporte, Estoy desarrollando una Function en Appwrite Cloud con Node.js 22 y el siguiente package.json: {  "name": "upload-whitelist",  "type"...
- Function running in cloud but not locall...
Hi everyone, I have an appwrite function which is on python3.12 runtime. I have a library (hnswlib) which builds wheels during installation. This works on appwr...
