较低目录中提供文件?"/>
我如何使用Express 3.x从较低目录中提供文件?
This answer明确了如何从程序根目录以外的目录提供文件,如下所示:
var path = require('path');
var express = require('express');
var app = express();
app.use(express.static(path.join(__dirname, '../public')));
这很好。现在,我试图像这样设置一个socket.io服务器:
const express = require('express');
const server = express();
const io = require('socket.io')(server);
和socket.io抛出错误:
错误:您正在尝试将socket.io附加到快速请求处理函数。请传递一个http.Server实例。
这很有意义,因为现在在socket.io文档中,它要求这样的设置:
const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', () => { /* … */ });
server.listen(3000);
但是我不知道如何使用这种新的设置express和socket.io的新方法来协调上面的答案所示的从较低目录中加载文件的旧方法,因为const app = require('express')();
在套接字中。 io文档中,错误被抛出TypeError: app.static is not a function
。
如何将现在已经过时的快递路径路由与新的快递设置进行协调?
回答如下:这是我在Express 3.x以前的方式。
var path = require('path');
var http = require('http');
var express = require('express');
var app = express();
app.use(express.static(path.join(__dirname, '../public')));
/* ... more routing logic, i.e app.get(...)*/
var server = http.createServer(app);
var io = require('socket.io')(server);
io.on('connection', () => {/* ... */});
server.listen(3000);
希望有帮助
更多推荐
我如何使用Express 3.x从较低目录中提供文件?
发布评论