Javascript 带ParseServer的Express-无法连接到<;知识产权>;端口1337,连接超时
我在centos 7的自定义服务器上配置了解析服务器。当从这个服务器运行curl命令时,它的工作状态良好。命令提示测试它的工作状态,但当尝试使用curl从本地系统终端调用它时,它的连接超时。 我还尝试用我的PHPSDK代码来实现这一点 以下是parse server index.js文件:---Javascript 带ParseServer的Express-无法连接到<;知识产权>;端口1337,连接超时,javascript,node.js,express,parse-platform,centos7,Javascript,Node.js,Express,Parse Platform,Centos7,我在centos 7的自定义服务器上配置了解析服务器。当从这个服务器运行curl命令时,它的工作状态良好。命令提示测试它的工作状态,但当尝试使用curl从本地系统终端调用它时,它的连接超时。 我还尝试用我的PHPSDK代码来实现这一点 以下是parse server index.js文件:--- var express=require('express'); var ParseServer=require('parse-server')。ParseServer; var path=require
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){
log('DATABASE_URI未指定,返回到localhost');
}
var api=新的解析服务器({
databaseURI:databaseURI | |'mongodb://localhost:27017/dev',
cloud:process.env.cloud_CODE_MAIN | | u dirname+'/cloud/MAIN.js',
appId:process.env.APP|u ID | |'myAppId',
masterKey:process.env.MASTER|u KEY | |“”,//在此处添加您的主密钥。请保守秘密!
serverURL:process.env.SERVER|URL | |‘http://:1337/parse’,//如果需要,请不要忘记更改为https
liveQuery:{
classNames:[“Employee”]//支持查询订阅的类列表,此数据库集合直接用于客户端
}
});
//解析服务器不需要javascript键或.NET键等客户端键
//如果需要,可以在上面的初始化中将其设置为选项:
//javascriptKey、restAPIKey、dotNetKey、clientKey
var-app=express();
//为/public文件夹中的静态资产提供服务
app.use('/public',express.static(path.join(uu dirname,/public'));
//在/Parse URL前缀上提供解析API
var mountPath=process.env.PARSE|u MOUNT | |'/PARSE';
应用程序使用(安装路径、api);
//解析服务器可以很好地处理其余的web路由
app.get('/',函数(req,res){
res.status(200).send('我梦想成为一个网站。请在GitHub上启动解析服务器repo!');
});
//服务器url的/test路径上将有一个可用的测试页面
//在启动应用程序之前删除此项
app.get('/test',函数(req,res){
res.sendFile(path.join(_dirname,'/public/test.html');
});
//Web端点
//app.get('/',homeController.index);
//get('/about',aboutController.index);
var port=process.env.port | | 1337;
var httpServer=require('http').createServer(应用程序);
侦听(端口,函数(){
log('parse-server-example在端口'+port+'上运行);
});
//这将启用实时查询服务器
createLiveQueryServer(httpServer);
我的Php代码:-
<?php
require 'autoload.php';
use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
//use Parse\ParseACL;
//use Parse\ParsePush;
//use Parse\ParseUser;
//use Parse\ParseInstallation;
use Parse\ParseException;
//use Parse\ParseAnalytics;
//use Parse\ParseFile;
use Parse\ParseCloud;
try {
ParseClient::initialize("myAppId", "", "", true);
// Users of Parse Server will need to point ParseClient at their remote URL and Mount Point:
ParseClient::setServerURL('http://<ip address>:1337', 'parse');
//Save data start
$gameScore = new ParseObject("GameScore");
$gameScore->set("score", 1337);
$gameScore->set("playerName", "zakir");
$gameScore->set("cheatMode", false);
$gameScore->save();
echo 'New object created with objectId: ' . $gameScore->getObjectId();
} catch (Exception $ex) {
// Execute any logic that should take place if the save fails.
// error is a ParseException object with an error code and message.
echo 'Failed to create new object, with error message: ' . $ex->getMessage();
}
如果您可以直接从服务器上的提示符连接到服务器,但不能从本地终端连接到服务器,则问题可能是某些防火墙问题(使用centos时可能会出现这种情况)或解析过程未在正确的接口上侦听
请检查绑定httpServer时使用的ip地址。我假设它没有绑定到正确的接口上。要检查哪些服务正在哪个接口上侦听,请尝试以下操作:
netstat -an | grep LISTEN
如果在端口号1337
中看到类似localhost
或127.0.0.1
的内容,则必须使用要绑定的正确IP启动服务器。您可以将其作为附加参数传递,如下所示:
httpServer.listen(port, ip, function() { /* ... */ });
请注意,您可能还必须调整解析配置的serverURL
属性以匹配正确的地址 如果您可以直接从服务器上的提示符连接到服务器,但不能从本地终端连接到服务器,则问题可能是某些防火墙问题(使用centos时可能会出现这种情况)或解析过程未在正确的接口上侦听
请检查绑定httpServer时使用的ip地址。我假设它没有绑定到正确的接口上。要检查哪些服务正在哪个接口上侦听,请尝试以下操作:
netstat -an | grep LISTEN
如果在端口号1337
中看到类似localhost
或127.0.0.1
的内容,则必须使用要绑定的正确IP启动服务器。您可以将其作为附加参数传递,如下所示:
httpServer.listen(port, ip, function() { /* ... */ });
请注意,您可能还必须调整解析配置的serverURL
属性以匹配正确的地址 “http://:1337/parse
”http://:1337/parse
”