GET 请求 Nodejs 在本地主机上工作,但在我的服务器上不工作
GET Request Nodejs works on localhost but not on my server
我的 GET 请求在本地主机上有效,但在我的服务器上无效。
我用邮递员测试了它。
我的 Hostinger 是 OVH。
我的数据库也托管在 OVH 中,但它没有直接连接到服务器。
这是应用程序的代码:
const express = require('express')
const bodyParser = require('body-parser')
const mysql = require('mysql')
const { response } = require('express')
const app = express();
const PORT = process.env.PORT || 35707;
// My external DB mysql
const db_conn = mysql.createPool({
connectionLimit : 10,
host: 'Myhost',
port: 35707,
user: 'myUsername',
password: 'Mypassword',
database: 'mydb'
})
//this one works
app.get('/', (req, res) => {
res.json({ test: 'test'});
});
// this one also works
app.get('/all.json', (req, res) => {
db_conn.getConnection( (err, conn) => {
if(err) throw err
console.log(`connected as id ${conn.threadId}`)
conn.query(
"SELECT ID, [.....]",
(err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
})
//this one works on localhost but not on the server
//I tested it with Postman
app.get('/id/:number/', (req, res) => {
db_conn.getConnection( (err, conn) => {
if(err) throw err
console.log(`connected as id ${conn.threadId}`)
conn.query("SELECT * FROM _posts WHERE ID=?", [req.params.number], (err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
})
你知道这可能是什么原因吗?
谢谢
我也这样试过:
app.get('/endpoint', function(req, res) {
var id = req.query.id;
db_conn.getConnection( (err, conn) => {
if(err) throw err
conn.query("SELECT * FROM mod803_posts WHERE ID=?", [id], (err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
});
它在本地主机上有效,但在服务器上无效。
解决方法,添加cors。
var cors = require('cors')
app.use(express.urlencoded({extended:true}));
app.use(cors())
我的 GET 请求在本地主机上有效,但在我的服务器上无效。 我用邮递员测试了它。 我的 Hostinger 是 OVH。 我的数据库也托管在 OVH 中,但它没有直接连接到服务器。 这是应用程序的代码:
const express = require('express')
const bodyParser = require('body-parser')
const mysql = require('mysql')
const { response } = require('express')
const app = express();
const PORT = process.env.PORT || 35707;
// My external DB mysql
const db_conn = mysql.createPool({
connectionLimit : 10,
host: 'Myhost',
port: 35707,
user: 'myUsername',
password: 'Mypassword',
database: 'mydb'
})
//this one works
app.get('/', (req, res) => {
res.json({ test: 'test'});
});
// this one also works
app.get('/all.json', (req, res) => {
db_conn.getConnection( (err, conn) => {
if(err) throw err
console.log(`connected as id ${conn.threadId}`)
conn.query(
"SELECT ID, [.....]",
(err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
})
//this one works on localhost but not on the server
//I tested it with Postman
app.get('/id/:number/', (req, res) => {
db_conn.getConnection( (err, conn) => {
if(err) throw err
console.log(`connected as id ${conn.threadId}`)
conn.query("SELECT * FROM _posts WHERE ID=?", [req.params.number], (err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
})
你知道这可能是什么原因吗? 谢谢
我也这样试过:
app.get('/endpoint', function(req, res) {
var id = req.query.id;
db_conn.getConnection( (err, conn) => {
if(err) throw err
conn.query("SELECT * FROM mod803_posts WHERE ID=?", [id], (err, rows) => {
conn.release()
if(!err){
res.send({"table": rows});
}else {
console.log(err);
}
})
})
});
它在本地主机上有效,但在服务器上无效。
解决方法,添加cors。
var cors = require('cors')
app.use(express.urlencoded({extended:true}));
app.use(cors())