javascript - NodeJS - 如何在现有元素中注入(inject)所有依赖项?

标签 javascript css node.js html socket.io

我有一个现有的 Web 元素,几乎没有依赖项,例如

  • Material 化.css

  • lodash.js

  • 脚本.js

  • 样式.css

    等等...

我认为 socketIO 不能像这样加载文件:

<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>

问题是我想让我的应用程序与 socket.io 通信,但是当我启动服务器文件 (index.js) 时,我可以看到我的页面,但完全没有 css 也没有脚本。

我的 index.js 看起来像这样:

var http = require('http');
var fs = require('fs');

var server = http.createServer(function(req, res) {
    fs.readFile('./index.html', 'utf-8', function(error, content) {
        res.writeHead(200, {"Content-Type": "text/html"});
        res.end(content);
    });
});


var io = require('socket.io').listen(server);


io.sockets.on('connection', function (socket) {
    console.log('Un client est connecté !');
    socket.emit('message', 'Vous êtes bien connecté !');
});


server.listen(8080);

那么你知道我如何告诉服务器注入(inject)我现有网站的所有资源吗?

最佳答案

我认为您使用的示例代码只是为了提供一个向客户端提供服务的简单示例,而不是实际提供 HTML 页面或其他静态内容。

使用 Express,您可以这样做:

var app = require('../app');
var server = http.createServer(app);

然后在 app.js 中:

app.use(express.static(path.join(__dirname, 'public')));    //to render static content files to the browser from a predefined static resource directory

注意 express.static 是如何指向静态内容应该放置的位置的。在本例中,它位于 /public 文件夹中(它可以是您选择的任何其他文件夹)。 index.html*.css 以及您提到的所有资源都应该放在那里。

可以找到详细示例here .

最后,您在问题中粘贴的代码无需打开并提供 http.createServer 中的 index.html 文件即可运行;它不适用于静态内容。

关于javascript - NodeJS - 如何在现有元素中注入(inject)所有依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910180/

相关文章:

javascript - 向上/向下移动时颜色变化

node.js - Bcrypt 比较对于正确的密码随机返回 false

javascript - 在 jQuery-UI Datepicker 中选择日期范围

Javascript ajax同步请求不起作用

JavaScript 多实例

javascript - 更改自定义组合输入选择框的背景颜色

javascript - 使用延迟加载禁用图像的默认灯箱

node.js - Stream.Transform 在完成输出之前接受新输入

node.js - .net core 应用程序使用不同的端口与 electron.net 跨平台运行

javascript - 函数参数对象解构导致 undefined variable