var express = require('express'),
app = express(),
db = require('./db'),
bodyParser = require('body-parser'),
controller = require('./controller');
app.use(express.static('../public'));
app.get('/server', function (req, res) {
console.log(__dirname);
res.sendFile('/../client/index.html');
});
我已经设置了这个快速服务器,但是使用上面的代码,当我查看 localhost:portnumber 时,我得到“Cannot GET/”。如果我将 GET 方法更改为:
app.get('/', function(req, res) {
res.sendFile(__dirname + '../client/index.html');
});
我得到“'C:\Users\TC\Documents\Desktop\myapp\multiplayerWebSite\server..\client\index.html' at Error (native)”,如果我将其更改为:
app.get('/', function(req, res) {
res.sendFile('../client/index.html');
});
我收到“类型错误:路径必须是绝对路径或指定根目录到 res.sendFile” 错误:ENOENT:没有那个文件或目录
当我在根目录中拥有所有内容时,服务器工作正常,但我想更改文件夹结构以使其更整洁/专业。如果有人能告诉我我做错了什么,我将不胜感激。提前致谢!
最佳答案
你可以使用 path 模块,有一个 join 方法可以将多个路径组合成一个。
如果你这样做的话:
path.join('test/musicfolder', '../videofolder/allreadyseen')
你会得到 'test/videofolder/allreadyseen'
。
您可以在此处查看所有文档:https://nodejs.org/api/path.html
var express = require('express'),
path = require('path'),
app = express(),
db = require('./db'),
bodyParser = require('body-parser'),
controller = require('./controller');
app.use(express.static(path.join(__dirname, '../public')));
app.get('/server', function (req, res) {
console.log(__dirname);
res.sendFile(path.join(__dirname, '../client/index.html'));
});
关于javascript - 使用带有快速服务器的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543980/