调用用户注册时,本地运行的分析服务器发生错误

有没有什么理由当我在本地运行parsing服务器时得到这个错误,但不是当在Heroku上托pipe? 状态:100消息:XMLHttpRequest失败:“无法连接到parsingAPI”

我有mongodb安装和本地运行。 我也有一个包含APP_IDMASTER_KEY的.env文件,该文件被本地的dotenv引入。

这是我想要做的一个简短的例子…

 var express = require('express'); var bodyParser = require('body-parser'); var dotenv = require('dotenv').config({silent: true}); var ParseServer = require('parse-server').ParseServer; var Parse = require('parse/node'); // Set up the parse server var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI; var api = new ParseServer({ databaseURI: databaseUri || 'mongodb://localhost:27017/dev', cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', appId: process.env.APP_ID || 'myAppId', masterKey: process.env.MASTER_KEY || '' }); // Set up express var app = express(); app.use(express.static(__dirname + '/public')); var mountPath = process.env.PARSE_MOUNT || '/parse'; app.use(mountPath, api); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // Initialize parse so that I can use in my routes and controllers Parse.initialize(process.env.APP_ID,'unused'); Parse.serverURL = process.env.SERVER_URI || 'http://locahost:1337/parse'; // Routes app.get('/', function(req, res) { res.status(200).send('[form goes here that sends POST to "/sign-up"]'); }); app.post('/sign-up', function(req, res) { var user = new Parse.User(); user.set("email", req.body.inputEmail); user.set("password", req.body.inputPassword); user.signUp(null, { success: function(user) { res.status(200).send('Signup Success!'); }, error: function(user, error) { res.status(200).send('Signup Failed'); } }); }); var port = process.env.PORT || 1337; app.listen(port); 

Unable to connect to the Parse API的错误意味着Parse sdk无法连接到给定的serverURL。 在你的情况下,似乎是一个错字: http:// locahost:1337 /parsing应该是http:// localhost:1337 /parsing ?

你也应该删除var Parse = require('parse/node'); 并且作为parsingsdk的自定义初始化将在Parse Server中初始化,然后Parse将在全局可用。 看看自述文件中的用法示例。 你的代码应该是这样的:

 var express = require('express'); var bodyParser = require('body-parser'); var dotenv = require('dotenv').config({silent: true}); var ParseServer = require('parse-server').ParseServer; // Set up the parse server var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI; var api = new ParseServer({ databaseURI: databaseUri || 'mongodb://localhost:27017/dev', cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', appId: process.env.APP_ID || 'myAppId', masterKey: process.env.MASTER_KEY || '', serverURL: process.env.SERVER_URI || 'http://localhost:1337/parse' }); // Set up express var app = express(); app.use(express.static(__dirname + '/public')); var mountPath = process.env.PARSE_MOUNT || '/parse'; app.use(mountPath, api); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // Routes app.post('/sign-up', function(req, res) { var user = new Parse.User(); // Parse available as a global variable }); var port = process.env.PORT || 1337; app.listen(port); 

对我来说,当部署到一切都好,但在当地工作,我不得不这样做:

 Parse.initialize("YOUR_APP_ID"); Parse.serverURL = process.env.SERVER_URL ||'http://localhost:1337/parse'; 

parsing服务器初始化后,才能使云代码正常工作

否则我得到了“无法连接到parsingAPI”的错误。