所以我正在尝试构建一个服务于网站的小应用程序,以及它的API。我正在使用Node,Express和Webpack。
目录看起来像这样:
>client
|>dist
|>src
>server
|>dist
|>src
>node_modules
package.json
webpack.config.js
Webpack将每个src
中的所有内容捆绑在一起,并在dist
和client
的每个server
中将其吐出。
当我访问/
时,我希望Express在index.html
中提供client/dist
文件。当我访问/api
时,我需要它来做其他操作(那些工作正常)。
这就是我的server/src/app.js
文件的样子(谁处理路由):
const express = require('express');
const path = require('path');
const port = process.env.PORT || 5000;
const app = express();
app.get('/', function(req, res){
res.sendFile(path.resolve(__dirname, 'client', 'dist', 'index.html'));
console.log('got hit on / boy');
});
app.get('/api/', function(req, res) {
//Does the right thing
})
app.listen(port, function(){
console.log('listening on ' + port);
})
我的Webpack文件:
const path = require('path');
module.exports = [{
name: 'Client bundling',
entry: './client/src/app.js',
output: {
path: path.resolve(__dirname, 'client', 'dist', 'js'),
filename: 'bundle.js'
},
node: {
fs: 'empty',
net: 'empty'
}
},
{
name: 'Server bundling',
entry: './server/src/app.js',
output: {
path: path.resolve(__dirname, 'server', 'dist'),
filename: 'bundle.js'
},
node: {
fs: 'empty',
net: 'empty'
},
target: 'node'
}];
我的后续问题是如何从服务的View访问API端点,因为它们都位于同一个域中。
谢谢!
答案 0 :(得分:0)
您指向的文件不存在。 改变这个
res.sendFile(path.resolve(__dirname, 'client', 'dist', 'index.html')
到这个
res.sendFile(path.resolve("../..", 'client', 'dist', 'index.html')