2014-10-31 50 views
-2

我正在學習Node.js和製作網絡服務器,我想做的是require()一個執行nodejs代碼並將文件輸出捕獲到變量中的文件。那可能嗎?Nodejs執行節點文件並得到它的輸出

我有以下:

Main.js

// Webserver code above 
require('my_file.js'); 
// Webserver code below 

my_file.js

console.log("Hello World"); 

我想Main.js的輸出,以顯示Hello World在網絡瀏覽器中,它顯示y在控制檯,當我去的網址,但實際顯示在頁面上是什麼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) 

我這不是正確的這樣做呢?

+0

查看[child process](http://nodejs.org/api/child_process.html)模塊,特別是['fork()'](http://nodejs.org/api /child_process.html#child_process_child_process_fork_modulepath_args_options)。子流程的['stdout'](http://nodejs.org/api/child_process.html#child_process_child_stdout)可以[流](http://nodejs.org/api/stream.html)打開['http.ServerResponse'](http://nodejs.org/api/http.html#http_class_http_serverresponse)。 – 2014-10-31 19:41:12

+0

好的,所以我能夠fork()它,但我不知道如何獲取流...如果您看到我的編輯,是否正確的方法來做到這一點? – 2014-10-31 20:18:12

+0

http://stackoverflow.com/questions/22275556/node-js-forked-pipe – AJcodez 2014-10-31 20:39:03

回答

0

在這裏,我們走!我知道了!

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(); 
}); 
0

我認爲你正在接近錯誤的方式。如果您的最終目標是向瀏覽器寫入內容,則根本不應該使用console.log。所有你需要在my_file.jsmodule.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; 
相關問題