本地解析服务器 运行 在调用用户注册时出错
Parse Server running locally has error when calling User signUp
当 运行 在本地解析服务器时出现此错误,但在 Heroku 上托管时却不会出现此错误,有什么原因吗?
Status:100 Message:XMLHttpRequest 失败:"Unable to connect to the Parse API"
我在本地安装了 mongodb 和 运行。我还有一个包含 APP_ID
和 MASTER_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/parse should be http://localhost:1337/parse?
您还应该删除 var Parse = require('parse/node');
和自定义初始化,因为解析 sdk 将在 Parse Server 中初始化,然后 Parse
将在全球范围内可用。查看自述文件中的 usage 示例。您的代码应如下所示:
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);
当 运行 在本地解析服务器时出现此错误,但在 Heroku 上托管时却不会出现此错误,有什么原因吗? Status:100 Message:XMLHttpRequest 失败:"Unable to connect to the Parse API"
我在本地安装了 mongodb 和 运行。我还有一个包含 APP_ID
和 MASTER_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/parse should be http://localhost:1337/parse?
您还应该删除 var Parse = require('parse/node');
和自定义初始化,因为解析 sdk 将在 Parse Server 中初始化,然后 Parse
将在全球范围内可用。查看自述文件中的 usage 示例。您的代码应如下所示:
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);