使用快递服务器的文件

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'); }); 

我有这个快速服务器设置,但使用上面的代码时,我看到“无法GET /”当我查看localhost: portnumber 。 如果我将GET方法更改为:

 app.get('/', function(req, res) { res.sendFile(__dirname + '../client/index.html'); }); 

我得到“C:\ Users \ TC \ Documents \ Desktop \ myapp \ multiplayerWebSite \ server \ client \ index.html”错误(本地)“,如果我将其更改为:

 app.get('/', function(req, res) { res.sendFile('../client/index.html'); }); 

我得到“TypeError:path必须是绝对的或指定根res.sendFile”错误:ENOENT:没有这样的文件或目录

当我拥有根目录中的所有内容时,服务器工作正常,但我想更改文件夹结构以使其更加整洁/专业。 如果有人能告诉我我做错了什么,我会非常感激。 先谢谢你!

您可以使用path模块,有一个连接方法,采取多个path来做一个。

例如,如果你这样做:

 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')); });