我在砖墙上敲打头,试图弄清楚这一点!我有一个非常基本的应用程序,该应用程序是使用带有快速服务器和React前端的节点创建的。
它在本地运行良好,但是当我部署到Heroku时,例如,如果我去domain/api/Customers
时,服务器部分就可以正常工作了。
如果我转到domain
,网页上只会显示“未找到”。
这只是一个小应用程序,所以我不会做错太多。我不知道该如何克服。
感谢您提供的任何帮助!
enter code here
server.js
const express = require('express');
const app = express();
// Serve static files from the React app
const path = require('path');
console.log(path);
app.use(express.static(path.join(__dirname, 'client/build')));
var sql = require('mssql');
const http = require ('http');
var dbConfig = {
user: "username",
password: "password",
server: "servername",
database: "myDatabase",
port:1433,
connectionTimeout: 150000,
requestTimeout: 150000,
pool:{
idleTimeoutMillis: 150000,
max:25
},
options:{
encrypt:true
}
}
var connection = new sql.ConnectionPool(dbConfig);
app.get('/api/customers', (req,res) => {
const customers = [
{id: 1, firstName: 'John', lastName: 'Doe'},
{id: 2, firstName: 'Mary', lastName: 'Swanson'},
{id: 3, firstName: 'Steve', lastName: 'Smith'}
];
res.json(customers);
});
app.get('/api/secData', (req,res) => {
connection.connect(err=>{
if(err){
console.log(err);
res.statusCode = 200;
res.setHeader('content','text/plain');
res.end(err);
}
else{
var sqlrequest = new sql.Request(connection);
sqlrequest.query("select * from sometable)",(err,result)=>{
if(err){
console.log(`SQL Error`);
res.statusCode = 200;
res.setHeader('content','text/plain');
res.end("SQL Error");
}
else{
console.log(`Success`);
res.statusCode = 200;
res.setHeader('content','text/plain');
//res.end(result.recordset[0]["Legal Name"]);
res.json(result.recordset);
connection.close();
}
})
}
})
});
app.get('*', (request, response) => {
console.log("errr");
response.sendFile(path.join(__dirname, 'client/build', 'index.html'));
});
const port = 5000;
app.listen(process.env.PORT || port);