同时在节点js上运行多个文件

时间:2013-08-01 19:25:01

标签: javascript node.js

我有一个简单的节点脚本

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(1337);

现在当我运行它时,我可以转到localhost:1337并查看输出但是,在命令模块中,由于某种原因它被冻结。直到我按下ctrl + C才冻结,只有在Ctrl + C im允许执行更多文件之后。

这只是我或它的设计方式。如果可以,有人可以指出我正确的方向,如何让它总是在1337端口或其他文件上侦听不同的文件。

1 个答案:

答案 0 :(得分:2)

这是正常行为。如果没有其他任何操作(或者您通过 Ctrl + C 手动停止),节点将仅退出。由于你告诉http listen(),这个过程将无限期地保持活着。

您要求的内容并不完全清楚,但如果您想在应用内部运行其他文件,则只需require()

var otherFile = require('./otherFile.js') // the .js is optional

otherFile现在将设置为您对otherFile.js中的module.exports所做的任何操作。

您应该read the module documentation全面了解require的工作原理。

如果要同时使用节点运行其他不相关的文件,请打开一个单独的命令提示符窗口。


我现在将稍微阅读一下这些内容:看起来您可能想知道如何让http像其他Web服务器一样从磁盘提供文件。节点不像传统的Web服务器那样工作。您的代码必须明确处理从磁盘提供的东西。

幸运的是,有一些框架/库可以让您轻松完成。如果您正在构建任何类型的Web服务,那么您应该使用框架而不是原始的http模块。我建议查看Express。使用express.static从磁盘提供文件很容易。