const express = require('express');
const path = require('path');
const uuidv4 = require('uuid/v4');
const cookieParser = require('cookie-parser')
const app = express();
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'client/build')));
app.use('/', (req, res, next) => {
console.log(req.cookies)
if (!req.cookies['audience_tracking_id']) {
console.log('Processed Request - User Does Not Have Cookie.')
const uniqueID = uuidv4();
res.setHeader('Set-Cookie', [`audience_tracking_id=${uniqueID}`, `contentFocus=${randomProductName()}`]);
}
next();
});
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname + '/client/build/index.html'))
});
app.use(function(err, req, res, next) {
console.log(err)
res.status(err.status || 500).send();
});
const port = process.env.PORT || 6000;
app.listen(port);
console.log(`Audience Service Host listening on ${port}`);
该应用程序包括一个React前端,它托管在Heroku上,我通过同一容器中的Express来提供静态构建文件。
问题是-是否使用Postman在本地向中的这个文件发送GET请求localhost:6000,或者是否访问Heroku上的容器
console.log()
无法启动-可能还有其他中间件。
app.use(express.static(path.join(__dirname, 'client/build')));
或者,如果我把它注释掉,我的中间件就会启动,console.log()就会出现。这是一个简单的修复,但我不知道为什么会发生这种情况,有人知道我在这个代码中犯了什么错误,使中间件失败了吗?