Hi , I keep getting “databases.upsertDocuments” or “createDocuments” function is not a valid appwrite function error . Following is a simple node.js code (modified for bug reporting purpose) Could you please investigate and let me know the root cause ? Thanks .
Execution id : 687e990ea3b4f735382a
import { Client, Databases, ID } from 'node-appwrite';
export default async ({ req, res, log, error }) => { let payload; try { payload = typeof req.body === 'string' ? JSON.parse(req.body) : req.body; } catch (err) { return res.json({ success: false, error: 'Invalid JSON', data: null }, 400); }
const { ast_id, room_id, type, score } = payload || {};
if (!ast_id || !room_id || !type || !score ) { return res.json( { success: false, error: 'Missing required parameters: ast_id, room_id, type, score, data: null }, 400 ); }
log(submit-prediction: ${JSON.stringify({ ast_id, room_id, type })});
const client = new Client() .setEndpoint(process.env.APPWRITE_ENDPOINT) .setProject( process.env.APPWRITE_FUNCTION_PROJECT_ID || process.env.APPWRITE_PROJECT_ID ) .setKey(req.headers['x-appwrite-key'] ?? ''); const databases = new Databases(client); const dbId = process.env.APPWRITE_DATABASE_ID;
try {
log(`Using score from payload: ${score}`);
const currentDate = new Date().toISOString().split('T')[0];
const documentId = `pred_${ast_id}_${room_id}_${type}_${currentDate}`
.replace(/[^a-zA-Z0-9_-]/g, '_')
const predictionDoc = await databases.upsertDocuments(
dbId,
'predictions',
[{
$id: documentId,
ast_id,
room_id,
type,
score
}]
);
So this is a type error you're getting in your ide?
What version of the package are you using?
{ "name": "submit-prediction", "version": "1.0.0", "description": "StarChat prediction submission function", "main": "src/main.js", "type": "module", "dependencies": { "node-appwrite": "^13.0.0" } }
Do we need any specific node version for this to work ?, in the function settings in appwrite console , I have the run time as Node 18.0
That error is not from IDE , that was from Appwrite function logs .
Can you provide the log and stack trace
node-appwrite@13 is pretty old, you'll want node-appwrite@17.1.0
that's probably your issue
upsert is new and wouldn't be available on an sdk from a year ago
Recommended threads
- All My Project is Gone
Hello everyone, please help. Why have all my projects suddenly disappeared? I received a warning via email about one of my projects being paused. When I clicked...
- > AppwriteException: The requested servi...
When trying to read or write from my database I get the following error: > AppwriteException: The requested service is disabled. You can enable the service from...
- 500 Server error
getting same 500 status This is my appwrite project: https://cloud.appwrite.io/console/project-fra-691932db0036241caa0e/overview/platforms Help how to open th...