客户端文件位置与节点服务器?

我正在尝试一个愚蠢的简单的聊天应用程序在这里: http : //socket.io/get-started/chat/

一切都很好,除了我想我会把index.html文件中的css和js分成不同的文件。 所以我有一个像这样的项目文件夹:

/myProject index.js index.html /node_modules /express /socket.io 

所以在myproject文件夹中,我创build了客户端文件夹,并在其中放置了一个app.css和app.js:

 /myProject /client app.css app.js 

并切换我的HTML:

 <link rel="stylesheet" href="/client/app.css" /> <script src="http://code.jquery.com/jquery-1.11.1.js"></script> <script src="/socket.io/socket.io.js"></script> <script src="/client/app.js"></script> 

我重新启动节点服务器并运行索引,但是我的chrome检查器在/client文件上有404个。

我试图将客户端文件夹移动到node_modules文件夹(以为这一定是在哪里得到它的socket.io参考),但是这并不这样做。

当节点服务器启动时,它提供了哪些本地文件夹(在这里使用Windows),以及如何添加其他客户端文件? 我不应该列出所有这些在包依赖关系我?

根据下面的答案,是的,使用快递(4.10.2)

出错:

参考错误:express没有定义

 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket) { console.log('user connected'); socket.on('disconnect', function() { console.log('user disconnected'); }); socket.on('chat message', function(msg) { console.log('message: ' + msg); }); }); http.listen(3000, function() { console.log('listening on *.3000'); }); 

我假设你使用快递。

所以为了在Express中提供静态文件,你需要这个

https://expressjs.com/en/starter/static-files.html

app.use(express.static('client'));

希望这可以帮助。