J'utilise Parse Server hébergé sur Heroku avec mongoDB. J'ai du mal à faire fonctionner la fonction de réinitialisation du mot de passe. J'ai suivi les instructions et ajouté le code ci-dessous à index.js. Une fois ce code ajouté, lorsque l'application se lance ou que j'essaie d'envoyer un e-mail, j'obtiens cette erreur: JSON text did not start with array or object and option to allow fragments not set.
Erreur lors de la configuration de la réinitialisation du mot de passe avec Parse Server
Je sais que cela signifie que le serveur ne peut pas analyser les données, mais je ne sais pas comment résoudre ce problème. Toute aide est très appréciée!
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var api = new ParseServer({
databaseURI: databaseUri || 'MY_DATABASE_URI',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'MY_APP_ID',
masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
serverURL: process.env.SERVER_URL || 'MY_SERVER_URL', // Don't forget to change to https if needed
liveQuery: {
classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
}
verifyUserEmails: true,
//The public URL of your app.
//This will appear in the link that is used to verify email addresses and reset passwords.
//Set the mount path as it is in serverURL
publicServerURL: 'MY_SERVER_URL_FROM_HEROKU',
// Your apps name. This will appear in the subject and body of the emails that are sent.
appName: 'MY_APP_NAME',
// The email adapter
emailAdapter: {
module: 'parse-server-simple-mailgun-adapter',
options: {
// The address that your emails come from
fromAddress: 'MY_MAILGUN_DOMAIN',
// Your domain from mailgun.com
domain: 'MY_MAILGUN_DOMAIN',
// Your API key from mailgun.com
apiKey: 'MY_API_KEY_FROM_MAILGUN',
}
}
});
// Client-keys like the javascript key or the .NET key are not necessary with parse-server
// If you wish you require them, you can set them as options in the initialization above:
// javascriptKey, restAPIKey, dotNetKey, clientKey
var app = express();
// Serve static assets from the /public folder
app.use('/public', express.static(path.join(__dirname, '/public')));
// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);
// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
res.status(200).send('I dream of being a website. Please star the parse-server repo on GitHub!');
});
// There will be a test page available on the /test path of your server url
// Remove this before launching your app
app.get('/test', function(req, res) {
res.sendFile(path.join(__dirname, '/public/test.html'));
});
var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
// This will enable the Live Query real-time server
ParseServer.createLiveQueryServer(httpServer);
Je pense que vous devez mettre ce json dans un {}, mais seulement ce code est hors contexte. Pls, pouvez-vous mettre plus de code? ex: var api = nouveau ParseServer ... –
Vous pouvez utiliser un outil en ligne pour valider votre json aussi .. –
Merci @ClaudioCastro. C'est le seul code que j'ai ajouté. Lorsque ce code seul est ajouté dans mon fichier index.js, il provoque l'erreur lors du lancement de l'application. – m1234