繁体   English   中英

在node.js服务器中显示node.js文件?

[英]Displaying node.js file inside a node.js server?

尝试通过我的node.js服务器显示此node.js文件。 但是,它所做的只是以正确的格式显示代码,就像在记事本中一样,而不是在执行时实际在控制台中显示其内容。 因此,换句话说,我希望我的node.js文件能够执行并显示在浏览器中,而不仅仅是在网页上显示代码。

var fs = require('fs'); 
var colour = require('colour');
var array = fs.readFileSync('songs/sister_golden_hair.txt').toString().split("\n"); 

var chordsArray =[];
var lyricsArray =[]; 
var count1 = 0;

for(var line in array) {
    count1++;   
    if (count1 >= 3) {          
        var count2 = 0; 
        lyricsArray[count1-3] = []; 
        chordsArray[count1-3] = [];
        while (array[line].indexOf("[") != -1) {
            lyricsArray[count1-3][count2] = array[line].substring(0, array[line].indexOf("["));
            array[line] = array[line].substring(array[line].indexOf("[")+1, array[line].length);
            chordsArray[count1-3][count2] = array[line].substring(0, array[line].indexOf("]"));
            array[line] = array[line].substring(array[line].indexOf("]")+1, array[line].length);
            count2++;
        }
        if (array[line].length > 0) {
            lyricsArray[count1-3][count2] = array[line];
            chordsArray[count1-3][count2] = "";
        }
    }
    else {
        console.log(array[line]);
    }
}

for (var i = 0; i < chordsArray.length; i++) {
    for (var j = 0; j < chordsArray[i].length; j++) {
        if (j == 0) {
            for (var k = 0; k < lyricsArray[i][j].length; k++) {            
                process.stdout.write(" ");                                  
            }       
            process.stdout.write(chordsArray[i][j].green);                      
        }
        else {
            for (var k = 0; k < lyricsArray[i][j].length - chordsArray[i][j-1].length; k++) {
                process.stdout.write(" ");
            }       
            process.stdout.write(chordsArray[i][j].green);                      
        }
    }
    console.log();
    for (var j = 0; j < lyricsArray[i].length; j++) {
            process.stdout.write(lyricsArray[i][j].yellow);                     
    }
}

这是我正在运行的node.js服务器,我尝试说的是,如果客户端转到“ http:// 127.0.0.1 /sister_golden_hair.html”,则它将显示上面的node.js。这是node.js服务器:

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

var counter = 1000;

function serveStaticFile(res, path, contentType, responseCode){
   if(!responseCode) responseCode = 200;
   fs.readFile(__dirname + path, function(err, data){
     if(err){
       res.writeHead(200, {'Content-Type': 'text/plain'});
       res.end('[' + counter++ + ']: ' + '500 INTERNAL FILE ERROR' + '\n');
     }
     else {
       res.writeHead(responseCode , {'Content-Type': contentType});
       res.end(data);

     }
   });
}

http.createServer(function (request,response){
     var path = request.url.replace(/\/?(?:\?.*)$/,'').toLowerCase();

   //write HTTP header

   var page = '';
   switch(path){
     case '/sister_golden_hair.html':
       serveStaticFile(response,
                       '/Problem4.js',
                       'application/javascript');
       break;
}
}).listen(3000, "127.0.0.1");
console.log('Server Running at http://127.0.0.1:3000  CNTL-C to quit');

如果要在浏览器中使用node.js代码,则需要使用诸如browserify之类的东西。

您是否尝试过使用eval()-https: //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/eval 请查看警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM