我有一个简单的节点脚本
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端口或其他文件上侦听不同的文件。
答案 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
从磁盘提供文件很容易。