我有一个 Mern 应用程序在开发上运行良好,但在生产上却不行。
在开发应用程序工作正常,但在生产 api 调用失败并出现以下错误:
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
我使用邮递员进行测试,https://desolate-brushlands-16337.herokuapp.com/api/check它正在输出构建文件夹的索引html页面。我还测试了http://localhost:3000/api/check它正在输出 JSON。
这是我的 server.js 文件中的代码
const app = express();
const dev = app.get('env') !== 'production';
if(!dev){
app.disable('x-powered-by');
app.use(express.static(path.resolve(__dirname, 'client/build')));
app.get('*',(req, res)=>{
res.sendFile(path.resolve(__dirname, 'client/build', 'index.html'))
})
};
app.use('/uploads', express.static(__dirname + '/uploads'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//initialize routes
app.use('/api', require('/routes/api'));
and the code in my fetch code on the react section
componentDidMount = () =>{
fetch(window.location.protocol + '//' + window.location.host + `/api/check`)
.then(res => res.json())
.then (post_contents => this.setState({ post_contents }) )
}