希望大家对这个问题有一定的经验,并指出我可能会遗漏的显而易见的东西。我有一个Express服务器和一个PostgreSQL数据库,它们都在本地运行并连接到react native应用程序。我已成功将Amazon RDS实例连接到我的Postgres数据库。例如,当我的快递服务器运行时:
const User = sequelize.define('User', {
email: {type: Sequelize.STRING, allowNull: false},
password: {type: Sequelize.STRING, allowNull: false},
user_id: {type: Sequelize.INTEGER, allowNull: true}
}, {
tableName: "UserTable"
});
User.sync({force: false}).then(() => {
console.log('Table already exists!')
});
在Postgres数据库中创建了一个新表,该表也已与RDS实例同步。但是,在react native应用程序中调用此函数时,它将引发超时错误:
postData = () => {
var url = 'http://123.456.7.891:3210/data'
axios.post(url, {
email: this.state.email,
password: this.state.password
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log("Api post error");
alert(error.message);
console.log(error);
});
};
这是它正在调用的明确端点,在我连接到Amazon RDS并只是在本地运行整个过程之前,一切都工作正常。
app.post('/data', function(req,res){
User.create({
email: req.body.email,
password: req.body.password,
user_id: 000,
}).then(data => {
console.log('Data entered!');
res.send({
status: 'Data successfully sent through api!',
email: req.body.email,
password: req.body.password
})
}).catch(function(error) {
console.log('There has been a problem with your post operation: ' + error.message);
throw error;
});
})
我怀疑我的错误出在可变URL中,并且由于现在它已连接到AWS RDS实例,因此我不应该将其发送回本地主机。但是,这对我来说并没有什么意义,因为快递服务器仍然应该在本地主机端口3210上侦听。任何帮助将不胜感激。
因此,无论出于何种原因,双引号都解决了我的问题。如果遇到此问题,请记住将var url =“ https://123.456.789:3210/data”;而不只是单引号!希望这对任何陷入困境的人有所帮助。