我对 node/express 真的很陌生,我试图了解发送静态文件的工作原理。我设法提供了我的索引文件,但我无法提供其他文件作为 GET 请求的响应。
app.use(express.static(path.join(__dirname, '/client/build')))
app.get('/', (req, res) => {
res.sendFile(path.resolve(__dirname, '.', 'client/build/', 'index.html'))
res.end()
})
app.get('/portfolio', (req, res) => {
const person = req.query.name
var filePath = __dirname + '/client/build/' + person + '/' + 'index.html'
res.sendFile(filePath)
res.end()
})
Run Code Online (Sandbox Code Playgroud)
我发现了类似的问题,但似乎没有任何效果。
我发送的请求是:
fetch(`portfolio?name=${who}`)
Run Code Online (Sandbox Code Playgroud)
您的代码存在一些问题。其中之一是您在文件发送完成之前就结束了请求,另一个问题是您没有res.sendFile
正确使用该方法。
尝试这样的事情:
app.get('/', (req, res) => {
const fileDirectory = path.resolve(__dirname, '.', 'client/build/');
res.sendFile('index.html', {root: fileDirectory}, (err) => {
res.end();
if (err) throw(err);
});
})
app.get('/portfolio', (req, res) => {
const person = req.query.name
const fileDirectory = __dirname + '/client/build/' + person + '/';
res.sendFile('index.html', {root: fileDirectory}, (err) => {
res.end();
if (err) throw(err);
});
})
Run Code Online (Sandbox Code Playgroud)
我不建议您在遇到错误时抛出错误,但它至少应该让您知道如何使其工作。
归档时间: |
|
查看次数: |
5505 次 |
最近记录: |