Nodejs执行节点文件并获取其输出
Nodejs execute node file and get its output
我正在学习Node.js并制作一个Web服务器,我想做的是require()
一个执行nodejs代码的文件,并将该文件的输出捕获到一个变量中。这可能吗?
我有以下内容:
Main.js
// Webserver code above
require('my_file.js');
// Webserver code below
my_file.js
console.log("Hello World");
我希望Main.js的输出在web浏览器中显示Hello World
,当我转到url时,它确实会显示在控制台中,但页面上实际显示的是console.log("Hello World");
有什么方法可以让浏览器只显示Hello World
而不显示实际代码吗?
编辑
当我这样做时:
http.createServer(function (request, response){
// Stripped Code
var child = require('child_process').fork(full_path, [], []);
child.stdout.on('data', function(data){
response.write(data);
});
// Stripped Code
}).listen(port, '162.243.218.214');
我得到以下错误:
child.stdout.on('data', function(data){
^
TypeError: Cannot call method 'on' of null
at /home/rnaddy/example.js:25:38
at fs.js:268:14
at Object.oncomplete (fs.js:107:15)
我这样做不对吗?
我认为你处理事情的方式不对。如果你的最终目标是向浏览器中写入一些内容,那么你根本不应该使用console.log。在my_file.js
中,您只需要module.exports = 'Hello World';
这不是PHP,你可以把东西写在一个文件中,然后把这个文件包括在浏览器的输出中。
main.js
var http = require('http');
var content = require('./my_file.js');
http.createServer(function(req, res) {
res.end(content);
}).listen(port);
my_file.js
var content = '';
// build content here
module.exports = content;
开始吧!我明白了!
var child = require('child_process').fork(full_path, [], {silent: true});
child.stdout.on('data', function(data){
response.write(data);
});
child.stdout.on('end', function(){
response.end();
});
相关文章:
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 如何获取XML值,然后使用javascript将它们输出到htm文件中
- 无法获取输出.返回代码206.缺少值
- 使用 Javascript 获取 php 文件的输出
- 获取表格格式的 Javascript 输出
- 如何在谷歌应用程序脚本环境中获取谷歌搜索输出
- 我可以't从draft js中获取html输出
- jquery没有't从DIV数据id中获取PHP变量值,只输出变量名
- 如何在src中获取html id输出
- 从HTML页面执行外部.js文件,通过发送输入.xml并从外部文件获取输出.xml.js文件
- 需要帮助获取输出以使用 Javascript 显示
- 从日期选取器获取输出
- 未定义获取输出而不是对象属性
- 无法获取输出
- 使用输入类型作为日期时.如何在 PHP 中使用 Echo 获取输出
- 从API请求(客户端)获取输出
- 无法从子进程获取输出
- 在javascript中获取输出以显示为链接
- Angular Js的ng-repeat不能使用ajax从json数组中获取输出
- 无法从node.js程序获取输出